Commit 9e906a9dead1 for kernel

commit 9e906a9dead17d81d6c2687f65e159231d0e3286
Merge: 37bb2e7217b0 2eeb09fe1c51
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Dec 7 07:07:02 2025 -0800

    Merge tag 'perf-tools-for-v6.19-2025-12-06' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools

    Pull perf tools updates from Namhyung Kim:
     "Perf event/metric description:

      Unify all event and metric descriptions in JSON format. Now event
      parsing and handling is greatly simplified by that.

      From users point of view, perf list will provide richer information
      about hardware events like the following.

        $ perf list hw

        List of pre-defined events (to be used in -e or -M):

        legacy hardware:
          branch-instructions
               [Retired branch instructions [This event is an alias of branches]. Unit: cpu]
          branch-misses
               [Mispredicted branch instructions. Unit: cpu]
          branches
               [Retired branch instructions [This event is an alias of branch-instructions]. Unit: cpu]
          bus-cycles
               [Bus cycles,which can be different from total cycles. Unit: cpu]
          cache-misses
               [Cache misses. Usually this indicates Last Level Cache misses; this is intended to be used in conjunction with the
                PERF_COUNT_HW_CACHE_REFERENCES event to calculate cache miss rates. Unit: cpu]
          cache-references
               [Cache accesses. Usually this indicates Last Level Cache accesses but this may vary depending on your CPU. This may include
                prefetches and coherency messages; again this depends on the design of your CPU. Unit: cpu]
          cpu-cycles
               [Total cycles. Be wary of what happens during CPU frequency scaling [This event is an alias of cycles]. Unit: cpu]
          cycles
               [Total cycles. Be wary of what happens during CPU frequency scaling [This event is an alias of cpu-cycles]. Unit: cpu]
          instructions
               [Retired instructions. Be careful,these can be affected by various issues,most notably hardware interrupt counts. Unit: cpu]
          ref-cycles
               [Total cycles; not affected by CPU frequency scaling. Unit: cpu]

      But most notable changes would be in the perf stat. On the right side,
      the default metrics are better named and aligned. :)

        $ perf stat -- perf test -w noploop

         Performance counter stats for 'perf test -w noploop':

                        11      context-switches                 #     10.8 cs/sec  cs_per_second
                         0      cpu-migrations                   #      0.0 migrations/sec  migrations_per_second
                     3,612      page-faults                      #   3532.5 faults/sec  page_faults_per_second
                  1,022.51 msec task-clock                       #      1.0 CPUs  CPUs_utilized
                   110,466      branch-misses                    #      0.0 %  branch_miss_rate         (88.66%)
             6,934,452,104      branches                         #   6781.8 M/sec  branch_frequency     (88.66%)
             4,657,032,590      cpu-cycles                       #      4.6 GHz  cycles_frequency       (88.65%)
            27,755,874,218      instructions                     #      6.0 instructions  insn_per_cycle  (89.03%)
                                TopdownL1                        #      0.3 %  tma_backend_bound
                                                                 #      9.3 %  tma_bad_speculation      (89.05%)
                                                                 #      9.7 %  tma_frontend_bound       (77.86%)
                                                                 #     80.7 %  tma_retiring             (88.81%)

               1.025318171 seconds time elapsed

               1.013248000 seconds user
               0.012014000 seconds sys

      Deferred unwinding support:

      With the kernel support (commit c69993ecdd4d: "perf: Support deferred
      user unwind"), perf can use deferred callchains for userspace stack
      trace with frame pointers like below:

        $ perf record --call-graph fp,defer ...

      This will be transparent to users when it comes to other commands like
      perf report and perf script. They will merge the deferred callchains
      to the previous samples as if they were collected together.

      ARM SPE updates

       - Extensive enhancements to support various kinds of memory
         operations including GCS, MTE allocation tags, memcpy/memset,
         register access, and SIMD operations.

       - Add inverted data source filter (inv_data_src_filter) support to
         exclude certain data sources.

       - Improve documentation.

      Vendor event updates:

       - Intel: Updated event files for Sierra Forest, Panther Lake, Meteor
         Lake, Lunar Lake, Granite Rapids, and others.

       - Arm64: Added metrics for i.MX94 DDR PMU and Cortex-A720AE
         definitions.

       - RISC-V: Added JSON support for T-HEAD C920V2.

      Misc:

       - Improve pointer tracking in data type profiling. It'd give better
         output when the variable is using container_of() to convert type.

       - Annotation support for perf c2c report in TUI. Press 'a' key to
         enter annotation view from cacheline browser window. This will show
         which instruction is causing the cacheline contention.

       - Lots of fixes and test coverage improvements!"

    * tag 'perf-tools-for-v6.19-2025-12-06' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (214 commits)
      libperf: Use 'extern' in LIBPERF_API visibility macro
      perf stat: Improve handling of termination by signal
      perf tests stat: Add test for error for an offline CPU
      perf stat: When no events, don't report an error if there is none
      perf tests stat: Add "--null" coverage
      perf cpumap: Add "any" CPU handling to cpu_map__snprint_mask
      libperf cpumap: Fix perf_cpu_map__max for an empty/NULL map
      perf stat: Allow no events to open if this is a "--null" run
      perf test kvm: Add some basic perf kvm test coverage
      perf tests evlist: Add basic evlist test
      perf tests script dlfilter: Add a dlfilter test
      perf tests kallsyms: Add basic kallsyms test
      perf tests timechart: Add a perf timechart test
      perf tests top: Add basic perf top coverage test
      perf tests buildid: Add purge and remove testing
      perf tests c2c: Add a basic c2c
      perf c2c: Clean up some defensive gets and make asan clean
      perf jitdump: Fix missed dso__put
      perf mem-events: Don't leak online CPU map
      perf hist: In init, ensure mem_info is put on error paths
      ...