<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in gecko-record</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>a23e1966932464e1c5226cb9ac4ce1d5fc10ba22 - Merge branch &apos;next&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#a23e1966932464e1c5226cb9ac4ce1d5fc10ba22</link>
        <description>Merge branch &apos;next&apos; into for-linusPrepare input updates for 6.11 merge window.

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Mon, 15 Jul 2024 23:03:44 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>6f47c7ae8c7afaf9ad291d39f0d3974f191a7946 - Merge tag &apos;v6.9&apos; into next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#6f47c7ae8c7afaf9ad291d39f0d3974f191a7946</link>
        <description>Merge tag &apos;v6.9&apos; into nextSync up with the mainline to bring in the new cleanup API.

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Tue, 28 May 2024 06:37:18 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>03c11eb3b16dc0058589751dfd91f254be2be613 - Merge tag &apos;v6.8-rc4&apos; into x86/percpu, to resolve conflicts and refresh the branch</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#03c11eb3b16dc0058589751dfd91f254be2be613</link>
        <description>Merge tag &apos;v6.8-rc4&apos; into x86/percpu, to resolve conflicts and refresh the branchConflicts:	arch/x86/include/asm/percpu.h	arch/x86/include/asm/text-patching.hSigned-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Wed, 14 Feb 2024 10:45:07 +0100</pubDate>
        <dc:creator>Ingo Molnar &lt;mingo@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0 - Merge drm/drm-next into drm-intel-gt-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0</link>
        <description>Merge drm/drm-next into drm-intel-gt-nextWork that needs to land in drm-intel-gt-next depends on two patches onlypresent in drm-intel-next, absence of which is causing a merge conflict:  3b918f4f0c8b (&quot;drm/i915/pxp: Optimize GET_PARAM:PXP_STATUS&quot;)  ac765b7018f6 (&quot;drm/i915/pxp/mtl: intel_pxp_init_hw needs runtime-pm inside pm-complete&quot;)Signed-off-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Tue, 24 Oct 2023 10:50:22 +0200</pubDate>
        <dc:creator>Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>20cd569d7ee8fce24e8753f0f43af6c420557b1f - Merge branch &apos;for-6.7/config_pm&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#20cd569d7ee8fce24e8753f0f43af6c420557b1f</link>
        <description>Merge branch &apos;for-6.7/config_pm&apos; into for-linus- #ifdef CONFIG_PM removal from HID code (Thomas Wei&#223;schuh)

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Wed, 01 Nov 2023 00:07:35 +0100</pubDate>
        <dc:creator>Jiri Kosina &lt;jkosina@suse.cz&gt;</dc:creator>
    </item>
<item>
        <title>a940daa52167e9db8ecce82213813b735a9d9f23 - Merge branch &apos;linus&apos; into smp/core</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#a940daa52167e9db8ecce82213813b735a9d9f23</link>
        <description>Merge branch &apos;linus&apos; into smp/corePull in upstream to get the fixes so depending changes can be applied.

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Tue, 17 Oct 2023 21:40:46 +0200</pubDate>
        <dc:creator>Thomas Gleixner &lt;tglx@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>57390019b68b83f96eb98f490367b9df1f2d77cb - Merge drm/drm-next into drm-misc-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#57390019b68b83f96eb98f490367b9df1f2d77cb</link>
        <description>Merge drm/drm-next into drm-misc-nextUpdating drm-misc-next to the state of Linux v6.6-rc2.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Wed, 11 Oct 2023 09:50:59 +0200</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>de80193308f43d3ae52cd3561e8ba77cd1437311 - Merge tag &apos;v6.6-rc4&apos; into perf/core, to pick up fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#de80193308f43d3ae52cd3561e8ba77cd1437311</link>
        <description>Merge tag &apos;v6.6-rc4&apos; into perf/core, to pick up fixesSigned-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Tue, 03 Oct 2023 09:32:25 +0200</pubDate>
        <dc:creator>Ingo Molnar &lt;mingo@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>6f23fc47c1b2ac226704fb7294f43ed3b0965e51 - Merge tag &apos;v6.6-rc2&apos; into locking/core, to pick up fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#6f23fc47c1b2ac226704fb7294f43ed3b0965e51</link>
        <description>Merge tag &apos;v6.6-rc2&apos; into locking/core, to pick up fixesSigned-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Mon, 18 Sep 2023 22:17:15 +0200</pubDate>
        <dc:creator>Ingo Molnar &lt;mingo@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>a3f9e4bc1ec9d8f1e352eb7c1cbaea3168246be7 - Merge drm/drm-next into drm-intel-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#a3f9e4bc1ec9d8f1e352eb7c1cbaea3168246be7</link>
        <description>Merge drm/drm-next into drm-intel-nextSync to v6.6-rc1.Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Fri, 15 Sep 2023 10:23:38 +0200</pubDate>
        <dc:creator>Jani Nikula &lt;jani.nikula@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>f2fa1c812c91e99d0317d1fc7d845e1e05f39716 - Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#f2fa1c812c91e99d0317d1fc7d845e1e05f39716</link>
        <description>Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netCross-merge networking fixes after downstream PR.No conflicts.Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Thu, 14 Sep 2023 19:48:23 +0200</pubDate>
        <dc:creator>Paolo Abeni &lt;pabeni@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>c900529f3d9161bfde5cca0754f83b4d3c3e0220 - Merge drm/drm-fixes into drm-misc-fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#c900529f3d9161bfde5cca0754f83b4d3c3e0220</link>
        <description>Merge drm/drm-fixes into drm-misc-fixesForwarding to v6.6-rc1.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Tue, 12 Sep 2023 08:53:30 +0200</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>535a265d7f0dd50d8c3a4f8b4f3a452d56bd160f - Merge tag &apos;perf-tools-for-v6.6-1-2023-09-05&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#535a265d7f0dd50d8c3a4f8b4f3a452d56bd160f</link>
        <description>Merge tag &apos;perf-tools-for-v6.6-1-2023-09-05&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-toolsPull perf tools updates from Arnaldo Carvalho de Melo: &quot;perf tools maintainership:   - Add git information for perf-tools and perf-tools-next trees and     branches to the MAINTAINERS file. That is where development now     takes place and myself and Namhyung Kim have write access, more     people to come as we emulate other maintainer groups.  perf record:   - Record kernel data maps when &apos;perf record --data&apos; is used, so that     global variables can be resolved and used in tools that do data     profiling.  perf trace:   - Remove the old, experimental support for BPF events in which a .c     file was passed as an event: &quot;perf trace -e hello.c&quot; to then get     compiled and loaded.     The only known usage for that, that shipped with the kernel as an     example for such events, augmented the raw_syscalls tracepoints and     was converted to a libbpf skeleton, reusing all the user space     components and the BPF code connected to the syscalls.     In the end just the way to glue the BPF part and the user space     type beautifiers changed, now being performed by libbpf skeletons.     The next step is to use BTF to do pretty printing of all syscall     types, as discussed with Alan Maguire and others.     Now, on a perf built with BUILD_BPF_SKEL=1 we get most if not all     path/filenames/strings, some of the networking data structures,     perf_event_attr, etc, i.e. systemwide tracing of nanosleep calls     and perf_event_open syscalls while &apos;perf stat&apos; runs &apos;sleep&apos; for 5     seconds:      # perf trace -a -e *nanosleep,perf* perf stat -e cycles,instructions sleep 5         0.000 (   9.034 ms): perf/327641 perf_event_open(attr_uptr: { type: 0 (PERF_TYPE_HARDWARE), size: 136, config: 0 (PERF_COUNT_HW_CPU_CYCLES), sample_type: IDENTIFIER, read_format: TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING, disabled: 1, inherit: 1, enable_on_exec: 1, exclude_guest: 1 }, pid: 327642 (perf), cpu: -1, group_fd: -1, flags: FD_CLOEXEC) = 3         9.039 (   0.006 ms): perf/327641 perf_event_open(attr_uptr: { type: 0 (PERF_TYPE_HARDWARE), size: 136, config: 0x1 (PERF_COUNT_HW_INSTRUCTIONS), sample_type: IDENTIFIER, read_format: TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING, disabled: 1, inherit: 1, enable_on_exec: 1, exclude_guest: 1 }, pid: 327642 (perf-exec), cpu: -1, group_fd: -1, flags: FD_CLOEXEC) = 4             ? (           ): gpm/991  ... [continued]: clock_nanosleep())               = 0        10.133 (           ): sleep/327642 clock_nanosleep(rqtp: { .tv_sec: 5, .tv_nsec: 0 }, rmtp: 0x7ffd36f83ed0) ...             ? (           ): pool-gsd-smart/3051  ... [continued]: clock_nanosleep())   = 0        30.276 (           ): gpm/991 clock_nanosleep(rqtp: { .tv_sec: 2, .tv_nsec: 0 }, rmtp: 0x7ffcc6f73710) ...       223.215 (1000.430 ms): pool-gsd-smart/3051 clock_nanosleep(rqtp: { .tv_sec: 1, .tv_nsec: 0 }, rmtp: 0x7f6e7fffec90) = 0        30.276 (2000.394 ms): gpm/991  ... [continued]: clock_nanosleep())               = 0      1230.814 (           ): pool-gsd-smart/3051 clock_nanosleep(rqtp: { .tv_sec: 1, .tv_nsec: 0 }, rmtp: 0x7f6e7fffec90) ...      1230.814 (1000.404 ms): pool-gsd-smart/3051  ... [continued]: clock_nanosleep())   = 0      2030.886 (           ): gpm/991 clock_nanosleep(rqtp: { .tv_sec: 2, .tv_nsec: 0 }, rmtp: 0x7ffcc6f73710) ...      2237.709 (1000.153 ms): pool-gsd-smart/3051 clock_nanosleep(rqtp: { .tv_sec: 1, .tv_nsec: 0 }, rmtp: 0x7f6e7fffec90) = 0             ? (           ): crond/1172  ... [continued]: clock_nanosleep())            = 0      3242.699 (           ): pool-gsd-smart/3051 clock_nanosleep(rqtp: { .tv_sec: 1, .tv_nsec: 0 }, rmtp: 0x7f6e7fffec90) ...      2030.886 (2000.385 ms): gpm/991  ... [continued]: clock_nanosleep())               = 0      3728.078 (           ): crond/1172 clock_nanosleep(rqtp: { .tv_sec: 60, .tv_nsec: 0 }, rmtp: 0x7ffe0971dcf0) ...      3242.699 (1000.158 ms): pool-gsd-smart/3051  ... [continued]: clock_nanosleep())   = 0      4031.409 (           ): gpm/991 clock_nanosleep(rqtp: { .tv_sec: 2, .tv_nsec: 0 }, rmtp: 0x7ffcc6f73710) ...        10.133 (5000.375 ms): sleep/327642  ... [continued]: clock_nanosleep())          = 0      Performance counter stats for &apos;sleep 5&apos;:             2,617,347      cycles             1,855,997      instructions                     #    0.71  insn per cycle           5.002282128 seconds time elapsed           0.000855000 seconds user           0.000852000 seconds sys  perf annotate:   - Building with binutils&apos; libopcode now is opt-in (BUILD_NONDISTRO=1)     for licensing reasons, and we missed a build test on     tools/perf/tests makefile.     Since we now default to NDEBUG=1, we ended up segfaulting when     building with BUILD_NONDISTRO=1 because a needed initialization     routine was being &quot;error checked&quot; via an assert.     Fix it by explicitly checking the result and aborting instead if it     fails.     We better back propagate the error, but at least &apos;perf annotate&apos; on     samples collected for a BPF program is back working when perf is     built with BUILD_NONDISTRO=1.  perf report/top:   - Add back TUI hierarchy mode header, that is seen when using &apos;perf     report/top --hierarchy&apos;.   - Fix the number of entries for &apos;e&apos; key in the TUI that was     preventing navigation of lines when expanding an entry.  perf report/script:   - Support cross platform register handling, allowing a perf.data file     collected on one architecture to have registers sampled correctly     displayed when analysis tools such as &apos;perf report&apos; and &apos;perf     script&apos; are used on a different architecture.   - Fix handling of event attributes in pipe mode, i.e. when one uses:  	perf record -o - | perf report -i -     When no perf.data files are used.   - Handle files generated via pipe mode with a version of perf and     then read also via pipe mode with a different version of perf,     where the event attr record may have changed, use the record size     field to properly support this version mismatch.  perf probe:   - Accessing global variables from uprobes isn&apos;t supported, make the     error message state that instead of stating that some minimal     kernel version is needed to have that feature. This seems just a     tool limitation, the kernel probably has all that is needed.  perf tests:   - Fix a reference count related leak in the dlfilter v0 API where the     result of a thread__find_symbol_fb() is not matched with an     addr_location__exit() to drop the reference counts of the resolved     components (machine, thread, map, symbol, etc). Add a dlfilter test     to make sure that doesn&apos;t regresses.   - Lots of fixes for the &apos;perf test&apos; written in shell script related     to problems found with the shellcheck utility.   - Fixes for &apos;perf test&apos; shell scripts testing features enabled when     perf is built with BUILD_BPF_SKEL=1, such as &apos;perf stat&apos; bpf     counters.   - Add perf record sample filtering test, things like the following     example, that gets implemented as a BPF filter attached to the     event:       # perf record -e task-clock -c 10000 --filter &apos;ip &lt; 0xffffffff00000000&apos;   - Improve the way the task_analyzer test checks if libtraceevent is     linked, using &apos;perf version --build-options&apos; instead of the more     expensinve &apos;perf record -e &quot;sched:sched_switch&quot;&apos;.   - Add support for riscv in the mmap-basic test. (This went as well     via the RiscV tree, same contents).  libperf:   - Implement riscv mmap support (This went as well via the RiscV tree,     same contents).  perf script:   - New tool that converts perf.data files to the firefox profiler     format so that one can use the visualizer at     https://profiler.firefox.com/. Done by Anup Sharma as part of this     year&apos;s Google Summer of Code.     One can generate the output and upload it to the web interface but     Anup also automated everything:       perf script gecko -F 99 -a sleep 60   - Support syscall name parsing on arm64.   - Print &quot;cgroup&quot; field on the same line as &quot;comm&quot;.  perf bench:   - Add new &apos;uprobe&apos; benchmark to measure the overhead of uprobes     with/without BPF programs attached to it.   - breakpoints are not available on power9, skip that test.  perf stat:   - Add #num_cpus_online literal to be used in &apos;perf stat&apos; metrics, and     add this extra &apos;perf test&apos; check that exemplifies its purpose:  	TEST_ASSERT_VAL(&quot;#num_cpus_online&quot;,                         expr__parse(&amp;num_cpus_online, ctx, &quot;#num_cpus_online&quot;) == 0);  	TEST_ASSERT_VAL(&quot;#num_cpus&quot;, expr__parse(&amp;num_cpus, ctx, &quot;#num_cpus&quot;) == 0);  	TEST_ASSERT_VAL(&quot;#num_cpus &gt;= #num_cpus_online&quot;, num_cpus &gt;= num_cpus_online);  Miscellaneous:   - Improve tool startup time by lazily reading PMU, JSON, sysfs data.   - Improve error reporting in the parsing of events, passing YYLTYPE     to error routines, so that the output can show were the parsing     error was found.   - Add &apos;perf test&apos; entries to check the parsing of events     improvements.   - Fix various leak for things detected by -fsanitize=address, mostly     things that would be freed at tool exit, including:       - Free evsel-&gt;filter on the destructor.       - Allow tools to register a thread-&gt;priv destructor and use it in         &apos;perf trace&apos;.       - Free evsel-&gt;priv in &apos;perf trace&apos;.       - Free string returned by synthesize_perf_probe_point() when the         caller fails to do all it needs.   - Adjust various compiler options to not consider errors some     warnings when building with broken headers found in things like     python, flex, bison, as we otherwise build with -Werror. Some for     gcc, some for clang, some for some specific version of those, some     for some specific version of flex or bison, or some specific     combination of these components, bah.   - Allow customization of clang options for BPF target, this helps     building on gentoo where there are other oddities where BPF targets     gets passed some compiler options intended for the native build, so     building with WERROR=0 helps while these oddities are fixed.   - Dont pass ERR_PTR() values to perf_session__delete() in &apos;perf top&apos;     and &apos;perf lock&apos;, fixing some segfaults when handling some odd     failures.   - Add LTO build option.   - Fix format of unordered lists in the perf docs     (tools/perf/Documentation)   - Overhaul the bison files, using constructs such as YYNOMEM.   - Remove unused tokens from the bison .y files.   - Add more comments to various structs.   - A few LoongArch enablement patches.  Vendor events (JSON):   - Add JSON metrics for Yitian 710 DDR (aarch64). Things like:  	EventName, BriefDescription  	visible_window_limit_reached_rd, &quot;At least one entry in read queue reaches the visible window limit.&quot;,  	visible_window_limit_reached_wr, &quot;At least one entry in write queue reaches the visible window limit.&quot;,  	op_is_dqsosc_mpc	       , &quot;A DQS Oscillator MPC command to DRAM.&quot;,  	op_is_dqsosc_mrr	       , &quot;A DQS Oscillator MRR command to DRAM.&quot;,  	op_is_tcr_mrr		       , &quot;A Temperature Compensated Refresh(TCR) MRR command to DRAM.&quot;,   - Add AmpereOne metrics (aarch64).   - Update N2 and V2 metrics (aarch64) and events using Arm telemetry     repo.   - Update scale units and descriptions of common topdown metrics on     aarch64. Things like:       - &quot;MetricExpr&quot;: &quot;stall_slot_frontend / (#slots * cpu_cycles)&quot;,       - &quot;BriefDescription&quot;: &quot;Frontend bound L1 topdown metric&quot;,       + &quot;MetricExpr&quot;: &quot;100 * (stall_slot_frontend / (#slots * cpu_cycles))&quot;,       + &quot;BriefDescription&quot;: &quot;This metric is the percentage of total slots that were stalled due to resource constraints in the frontend of the processor.&quot;,   - Update events for intel: meteorlake to 1.04, sapphirerapids to     1.15, Icelake+ metric constraints.   - Update files for the power10 platform&quot;* tag &apos;perf-tools-for-v6.6-1-2023-09-05&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (217 commits)  perf parse-events: Fix driver config term  perf parse-events: Fixes relating to no_value terms  perf parse-events: Fix propagation of term&apos;s no_value when cloning  perf parse-events: Name the two term enums  perf list: Don&apos;t print Unit for &quot;default_core&quot;  perf vendor events intel: Fix modifier in tma_info_system_mem_parallel_reads for skylake  perf dlfilter: Avoid leak in v0 API test use of resolve_address()  perf metric: Add #num_cpus_online literal  perf pmu: Remove str from perf_pmu_alias  perf parse-events: Make common term list to strbuf helper  perf parse-events: Minor help message improvements  perf pmu: Avoid uninitialized use of alias-&gt;str  perf jevents: Use &quot;default_core&quot; for events with no Unit  perf test stat_bpf_counters_cgrp: Enhance perf stat cgroup BPF counter test  perf test shell stat_bpf_counters: Fix test on Intel  perf test shell record_bpf_filter: Skip 6.2 kernel  libperf: Get rid of attr.id field  perf tools: Convert to perf_record_header_attr_id()  libperf: Add perf_record_header_attr_id()  perf tools: Handle old data in PERF_RECORD_ATTR  ...

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Sun, 10 Sep 2023 05:06:17 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>f9f72b2ab77e986ac30de09a735a002b37d81503 - perf scripts python: Add command execution for gecko script</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/perf/scripts/python/bin/gecko-record#f9f72b2ab77e986ac30de09a735a002b37d81503</link>
        <description>perf scripts python: Add command execution for gecko scriptThis will enable the execution of gecko.py script using record andreport commands in &apos;perf script&apos;.  And this will be also reflected at&quot;perf script -l&quot; command.For Example:    perf script record gecko    perf script report geckoCommitter notes:As discussed on the perf tools office hours, I made -F 99 the defaultfor the record script and removed the double -- on the report script sothat the existing &apos;perf script&apos; protocol for the combined operation:    # perf script geckoWorks, i.e. the record script pipes its stdout into the stdin of thereport script, basically:  /bin/sh /usr/libexec/perf-core/scripts/python/bin/gecko-record -F 99 -g -a -q -o - | \  /bin/sh /usr/libexec/perf-core/scripts/python/bin/gecko-report -i -Testing it:The resulting JSON file needs to be uploaded tohttps://profiler.firefox.com, Anup already has code to start a localhttp server on the trace_begin handler of the gecko python script, startfirefox and feed it the JSON.The example below only collects sample for the specified workload, sothat we don&apos;t produce thousands of lines, to collect system widesamples, use instead:  # perf script gecko -a sleep 0.5  # nohup perf script gecko sleep 0.5  {    &quot;meta&quot;: {      &quot;interval&quot;: 1,      &quot;processType&quot;: 0,      &quot;product&quot;: &quot;x86_64 GNU/Linux&quot;,      &quot;stackwalk&quot;: 1,      &quot;debug&quot;: 0,      &quot;gcpoison&quot;: 0,      &quot;asyncstack&quot;: 1,      &quot;startTime&quot;: 274601692.636,      &quot;shutdownTime&quot;: null,      &quot;version&quot;: 24,      &quot;presymbolicated&quot;: true,      &quot;categories&quot;: [        {          &quot;name&quot;: &quot;User&quot;,          &quot;color&quot;: &quot;yellow&quot;,          &quot;subcategories&quot;: [            &quot;Other&quot;          ]        },        {          &quot;name&quot;: &quot;Kernel&quot;,          &quot;color&quot;: &quot;orange&quot;,          &quot;subcategories&quot;: [            &quot;Other&quot;          ]        }      ],      &quot;markerSchema&quot;: []    },    &quot;libs&quot;: [],    &quot;threads&quot;: [      {        &quot;tid&quot;: 3344498,        &quot;pid&quot;: 3344498,        &quot;name&quot;: &quot;sleep&quot;,        &quot;markers&quot;: {          &quot;schema&quot;: {            &quot;name&quot;: 0,            &quot;startTime&quot;: 1,            &quot;endTime&quot;: 2,            &quot;phase&quot;: 3,            &quot;category&quot;: 4,            &quot;data&quot;: 5          },          &quot;data&quot;: []        },        &quot;samples&quot;: {          &quot;schema&quot;: {            &quot;stack&quot;: 0,            &quot;time&quot;: 1,            &quot;responsiveness&quot;: 2          },          &quot;data&quot;: [            [              21,              274601692.636,              0            ],            [              23,              274601692.641,              0            ],            [              29,              274601692.643,              0            ],            [              42,              274601692.648,              0            ]          ]        },        &quot;frameTable&quot;: {          &quot;schema&quot;: {            &quot;location&quot;: 0,            &quot;relevantForJS&quot;: 1,            &quot;innerWindowID&quot;: 2,            &quot;implementation&quot;: 3,            &quot;optimizations&quot;: 4,            &quot;line&quot;: 5,            &quot;column&quot;: 6,            &quot;category&quot;: 7,            &quot;subcategory&quot;: 8          },          &quot;data&quot;: [            [              0,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              1,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              2,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              3,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              4,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              5,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              6,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              7,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              8,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              9,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              10,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              11,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              12,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              13,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              14,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              15,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              16,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              17,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              18,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              19,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              20,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              21,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              22,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              23,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              24,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              25,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              26,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              27,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              28,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              29,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              30,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              31,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              32,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              33,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              34,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              35,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              36,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              37,              false,              0,              null,              null,              null,              null,              1,              null            ],            [              38,              false,              0,              null,              null,              null,              null,              1,              null            ]          ]        },        &quot;stackTable&quot;: {          &quot;schema&quot;: {            &quot;prefix&quot;: 0,            &quot;frame&quot;: 1          },          &quot;data&quot;: [            [              null,              0            ],            [              0,              1            ],            [              1,              2            ],            [              2,              3            ],            [              3,              4            ],            [              4,              5            ],            [              5,              6            ],            [              6,              7            ],            [              7,              8            ],            [              8,              9            ],            [              9,              10            ],            [              10,              11            ],            [              11,              12            ],            [              12,              13            ],            [              13,              14            ],            [              14,              15            ],            [              15,              16            ],            [              16,              17            ],            [              17,              18            ],            [              18,              19            ],            [              19,              20            ],            [              20,              21            ],            [              20,              22            ],            [              22,              23            ],            [              11,              24            ],            [              24,              25            ],            [              25,              26            ],            [              26,              27            ],            [              27,              28            ],            [              28,              29            ],            [              9,              11            ],            [              30,              24            ],            [              31,              25            ],            [              32,              30            ],            [              33,              31            ],            [              34,              32            ],            [              35,              29            ],            [              36,              33            ],            [              37,              34            ],            [              38,              35            ],            [              39,              36            ],            [              40,              37            ],            [              41,              38            ]          ]        },        &quot;stringTable&quot;: [          &quot;__func__.0 (in [kernel.kallsyms].rodata)&quot;,          &quot;perf_trace_ext4_fc_track_inode (in [kernel.kallsyms])&quot;,          &quot;perf_trace_ext4_es_insert_delayed_block (in [kernel.kallsyms])&quot;,          &quot;ext4_es_show_pblock (in [kernel.kallsyms])&quot;,          &quot;perf_trace_ext4_ext_rm_leaf (in [kernel.kallsyms])&quot;,          &quot;devcgroup_access_write (in [kernel.kallsyms])&quot;,          &quot;devcgroup_update_access (in [kernel.kallsyms])&quot;,          &quot;propagate_exception (in [kernel.kallsyms])&quot;,          &quot;revalidate_active_exceptions (in [kernel.kallsyms])&quot;,          &quot;perf_trace_ext4_fc_commit_stop (in [kernel.kallsyms])&quot;,          &quot;perf_fetch_caller_regs (in [kernel.kallsyms])&quot;,          &quot;khugepaged (in [kernel.kallsyms])&quot;,          &quot;khugepaged_wait_work (in [kernel.kallsyms])&quot;,          &quot;freezable_schedule_timeout (in [kernel.kallsyms])&quot;,          &quot;freezer_count (in [kernel.kallsyms])&quot;,          &quot;try_to_freeze (in [kernel.kallsyms])&quot;,          &quot;try_to_freeze_unsafe (in [kernel.kallsyms])&quot;,          &quot;split_huge_pages_write (in [kernel.kallsyms])&quot;,          &quot;migrate_pages (in [kernel.kallsyms])&quot;,          &quot;unmap_and_move (in [kernel.kallsyms])&quot;,          &quot;__unmap_and_move (in [kernel.kallsyms])&quot;,          &quot;collect_events (in [kernel.kallsyms])&quot;,          &quot;uncore_down_prepare (in [kernel.kallsyms])&quot;,          &quot;perf_iommu_read (in [kernel.kallsyms])&quot;,          &quot;khugepaged_do_scan (in [kernel.kallsyms])&quot;,          &quot;khugepaged_scan_mm_slot (in [kernel.kallsyms])&quot;,          &quot;khugepaged_scan_file (in [kernel.kallsyms])&quot;,          &quot;need_resched (in [kernel.kallsyms])&quot;,          &quot;get_current (in [kernel.kallsyms])&quot;,          &quot;move_to_new_page (in [kernel.kallsyms])&quot;,          &quot;khugepaged_scan_pmd (in [kernel.kallsyms])&quot;,          &quot;trace_mm_khugepaged_scan_pmd (in [kernel.kallsyms])&quot;,          &quot;migrate_huge_page_move_mapping (in [kernel.kallsyms])&quot;,          &quot;do_huge_pmd_numa_page (in [kernel.kallsyms])&quot;,          &quot;pmd_pfn (in [kernel.kallsyms])&quot;,          &quot;protnone_mask (in [kernel.kallsyms])&quot;,          &quot;__pte_needs_invert (in [kernel.kallsyms])&quot;,          &quot;reclaim_high (in [kernel.kallsyms])&quot;,          &quot;memcg_memory_event (in [kernel.kallsyms])&quot;        ],        &quot;registerTime&quot;: 0,        &quot;unregisterTime&quot;: null,        &quot;processType&quot;: &quot;default&quot;      }    ],    &quot;processes&quot;: [],    &quot;pausedRanges&quot;: []  }  #Signed-off-by: Anup Sharma &lt;anupnewsmail@gmail.com&gt;Tested-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;Cc: Adrian Hunter &lt;adrian.hunter@intel.com&gt;Cc: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;Cc: Ian Rogers &lt;irogers@google.com&gt;Cc: Ingo Molnar &lt;mingo@redhat.com&gt;Cc: Jiri Olsa &lt;jolsa@kernel.org&gt;Cc: Mark Rutland &lt;mark.rutland@arm.com&gt;Cc: Namhyung Kim &lt;namhyung@kernel.org&gt;Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;Link: https://lore.kernel.org/r/cbf03cda175ea3dd2c6cd87bd3f12d803446cb95.1689961706.git.anupnewsmail@gmail.comSigned-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;

            List of files:
            /linux/tools/perf/scripts/python/bin/gecko-record</description>
        <pubDate>Fri, 21 Jul 2023 19:57:46 +0200</pubDate>
        <dc:creator>Anup Sharma &lt;anupnewsmail@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
