• Linus Torvalds's avatar
    Merge tag 'perf-core-2022-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · add76959
    Linus Torvalds authored
    Pull perf events updates from Ingo Molnar:
    
     - Thoroughly rewrite the data structures that implement perf task
       context handling, with the goal of fixing various quirks and
       unfeatures both in already merged, and in upcoming proposed code.
    
       The old data structure is the per task and per cpu
       perf_event_contexts:
    
             task_struct::perf_events_ctxp[] <-> perf_event_context <-> perf_cpu_context
                  ^                                 |    ^     |           ^
                  `---------------------------------'    |     `--> pmu ---'
                                                         v           ^
                                                    perf_event ------'
    
       In this new design this is replaced with a single task context and a
       single CPU context, plus intermediate data-structures:
    
             task_struct::perf_event_ctxp -> perf_event_context <- perf_cpu_context
                  ^                           |   ^ ^
                  `---------------------------'   | |
                                                  | |    perf_cpu_pmu_context <--.
                                                  | `----.    ^                  |
                                                  |      |    |                  |
                                                  |      v    v                  |
                                                  | ,--> perf_event_pmu_context  |
                                                  | |                            |
                                                  | |                            |
                                                  v v                            |
                                             perf_event ---> pmu ----------------'
    
       [ See commit bd275681 for more details. ]
    
       This rewrite was developed by Peter Zijlstra and Ravi Bangoria.
    
     - Optimize perf_tp_event()
    
     - Update the Intel uncore PMU driver, extending it with UPI topology
       discovery on various hardware models.
    
     - Misc fixes & cleanups
    
    * tag 'perf-core-2022-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
      perf/x86/intel/uncore: Fix reference count leak in __uncore_imc_init_box()
      perf/x86/intel/uncore: Fix reference count leak in snr_uncore_mmio_map()
      perf/x86/intel/uncore: Fix reference count leak in hswep_has_limit_sbox()
      perf/x86/intel/uncore: Fix reference count leak in sad_cfg_iio_topology()
      perf/x86/intel/uncore: Make set_mapping() procedure void
      perf/x86/intel/uncore: Update sysfs-devices-mapping file
      perf/x86/intel/uncore: Enable UPI topology discovery for Sapphire Rapids
      perf/x86/intel/uncore: Enable UPI topology discovery for Icelake Server
      perf/x86/intel/uncore: Get UPI NodeID and GroupID
      perf/x86/intel/uncore: Enable UPI topology discovery for Skylake Server
      perf/x86/intel/uncore: Generalize get_topology() for SKX PMUs
      perf/x86/intel/uncore: Disable I/O stacks to PMU mapping on ICX-D
      perf/x86/intel/uncore: Clear attr_update properly
      perf/x86/intel/uncore: Introduce UPI topology type
      perf/x86/intel/uncore: Generalize IIO topology support
      perf/core: Don't allow grouping events from different hw pmus
      perf/amd/ibs: Make IBS a core pmu
      perf: Fix function pointer case
      perf/x86/amd: Remove the repeated declaration
      perf: Fix possible memleak in pmu_dev_alloc()
      ...
    add76959
perf_event.c 44.5 KB