Skip to contentSkip to conversation

Performance events changes for v6.14

GIT PULL Merged Ingo Molnar 2 participants 2 messages Jan 20, 2025 – Jan 21, 2025

lore
Share & tools
lore
#0 lore raw

Linus,

Please pull the latest perf/core Git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf-core-2025-01-20

# HEAD: b709eb872e19a19607bbb6d2975bc264d59735cf perf: map pages in advance

Performance events changes for v6.14:

- Seqlock optimizations that arose in a perf context and were merged into the perf tree:

- seqlock: Add raw_seqcount_try_begin (Suren Baghdasaryan)
- mm: Convert mm_lock_seq to a proper seqcount ((Suren Baghdasaryan)
- mm: Introduce mmap_lock_speculate_{try_begin|retry} (Suren Baghdasaryan)
- mm/gup: Use raw_seqcount_try_begin() (Peter Zijlstra)

- Core perf enhancements:

- Reduce 'struct page' footprint of perf by mapping pages
in advance (Lorenzo Stoakes)
- Save raw sample data conditionally based on sample type (Yabin Cui)
- Reduce sampling overhead by checking sample_type in perf_sample_save_callchain() and perf_sample_save_brstack() (Yabin Cui)
- Export perf_exclude_event() (Namhyung Kim)

- Uprobes scalability enhancements: (Andrii Nakryiko)

- Simplify find_active_uprobe_rcu() VMA checks
- Add speculative lockless VMA-to-inode-to-uprobe resolution
- Simplify session consumer tracking
- Decouple return_instance list traversal and freeing
- Ensure return_instance is detached from the list before freeing
- Reuse return_instances between multiple uretprobes within task
- Guard against kmemdup() failing in dup_return_instance()

- AMD core PMU driver enhancements:

- Relax privilege filter restriction on AMD IBS (Namhyung Kim)

- AMD RAPL energy counters support: (Dhananjay Ugwekar)

- Introduce topology_logical_core_id() (K Prateek Nayak)

- Remove the unused get_rapl_pmu_cpumask() function
- Remove the cpu_to_rapl_pmu() function
- Rename rapl_pmu variables
- Make rapl_model struct global
- Add arguments to the init and cleanup functions
- Modify the generic variable names to *_pkg*
- Remove the global variable rapl_msrs
- Move the cntr_mask to rapl_pmus struct
- Add core energy counter support for AMD CPUs

- Intel core PMU driver enhancements:

- Support RDPMC 'metrics clear mode' feature (Kan Liang)
- Clarify adaptive PEBS processing (Kan Liang)
- Factor out functions for PEBS records processing (Kan Liang)
- Simplify the PEBS records processing for adaptive PEBS (Kan Liang)

- Intel uncore driver enhancements: (Kan Liang)

- Convert buggy pmu->func_id use to pmu->registered
- Support more units on Granite Rapids

Thanks,

Ingo

------------------>
Andrii Nakryiko (7):
uprobes: simplify find_active_uprobe_rcu() VMA checks
uprobes: add speculative lockless VMA-to-inode-to-uprobe resolution
uprobes: Simplify session consumer tracking
uprobes: Decouple return_instance list traversal and freeing
uprobes: Ensure return_instance is detached from the list before freeing
uprobes: Reuse return_instances between multiple uretprobes within task
uprobes: Guard against kmemdup() failing in dup_return_instance()

Dhananjay Ugwekar (9):
perf/x86/rapl: Remove the unused get_rapl_pmu_cpumask() function perf/x86/rapl: Remove the cpu_to_rapl_pmu() function perf/x86/rapl: Rename rapl_pmu variables perf/x86/rapl: Make rapl_model struct global perf/x86/rapl: Add arguments to the init and cleanup functions perf/x86/rapl: Modify the generic variable names to *_pkg* perf/x86/rapl: Remove the global variable rapl_msrs perf/x86/rapl: Move the cntr_mask to rapl_pmus struct perf/x86/rapl: Add core energy counter support for AMD CPUs

K Prateek Nayak (1):
x86/topology: Introduce topology_logical_core_id()

Kan Liang (6):
perf/x86/intel/ds: Clarify adaptive PEBS processing perf/x86/intel/ds: Factor out functions for PEBS records processing perf/x86/intel/ds: Simplify the PEBS records processing for adaptive PEBS perf/x86/intel: Support RDPMC metrics clear mode perf/x86/intel/uncore: Clean up func_id perf/x86/intel/uncore: Support more units on Granite Rapids

Lorenzo Stoakes (1):
perf: map pages in advance

Namhyung Kim (2):
perf/core: Export perf_exclude_event() perf/x86: Relax privilege filter restriction on AMD IBS

Peter Zijlstra (1):
mm/gup: Use raw_seqcount_try_begin()

Suren Baghdasaryan (3):
seqlock: add raw_seqcount_try_begin
mm: convert mm_lock_seq to a proper seqcount
mm: introduce mmap_lock_speculate_{try_begin|retry}

Yabin Cui (3):
perf/core: Save raw sample data conditionally based on sample type perf/core: Check sample_type in perf_sample_save_callchain perf/core: Check sample_type in perf_sample_save_brstack

 Documentation/arch/x86/topology.rst   |   4 +
 arch/s390/kernel/perf_cpum_cf.c       |   2 +-
 arch/s390/kernel/perf_cpum_sf.c       |   6 +-
 arch/s390/kernel/perf_pai_crypto.c    |   2 +-
 arch/s390/kernel/perf_pai_ext.c       |   2 +-
 arch/x86/events/amd/core.c            |   3 +-
 arch/x86/events/amd/ibs.c             |  64 ++++--
 arch/x86/events/core.c                |   3 +-
 arch/x86/events/intel/core.c          |  20 +-
 arch/x86/events/intel/ds.c            | 198 +++++++++-------
 arch/x86/events/intel/uncore.c        |  20 +-
 arch/x86/events/intel/uncore.h        |   1 -
 arch/x86/events/intel/uncore_snb.c    |   2 +-
 arch/x86/events/intel/uncore_snbep.c  |  48 ++--
 arch/x86/events/perf_event.h          |   1 +
 arch/x86/events/rapl.c                | 415 ++++++++++++++++++++++------------
 arch/x86/include/asm/perf_event.h     |  20 +-
 arch/x86/include/asm/processor.h      |   1 +
 arch/x86/include/asm/topology.h       |   1 +
 arch/x86/kernel/cpu/debugfs.c         |   1 +
 arch/x86/kernel/cpu/topology_common.c |   1 +
 include/linux/mm.h                    |  12 +-
 include/linux/mm_types.h              |   7 +-
 include/linux/mmap_lock.h             |  84 +++++--
 include/linux/perf_event.h            |  32 ++-
 include/linux/seqlock.h               |  22 ++
 include/linux/uprobes.h               |  16 +-
 kernel/events/core.c                  | 156 ++++++++-----
 kernel/events/ring_buffer.c           |  19 +-
 kernel/events/uprobes.c               | 225 +++++++++++++-----
 kernel/fork.c                         |   5 +-
 kernel/trace/bpf_trace.c              |  11 +-
 mm/gup.c                              |   3 +-
 mm/init-mm.c                          |   2 +-
 tools/testing/vma/vma.c               |   4 +-
 tools/testing/vma/vma_internal.h      |   4 +-
 36 files changed, 938 insertions(+), 479 deletions(-)