Skip to contentSkip to conversation

Performance events changes for v6.13

GIT PULL Merged Ingo Molnar 2 participants 2 messages Nov 18, 2024 – Nov 19, 2024

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-2024-11-18

# HEAD: 2c47e7a74f445426d156278e339b7abb259e50de perf/core: Correct perf sampling with guest VMs

Performance events changes for v6.13:

- Uprobes:
- Add BPF session support (Jiri Olsa)
- Switch to RCU Tasks Trace flavor for better performance (Andrii Nakryiko)
- Massively increase uretprobe SMP scalability by SRCU-protecting the uretprobe lifetime (Andrii Nakryiko)
- Kill xol_area->slot_count (Oleg Nesterov)

- Core facilities:
- Implement targeted high-frequency profiling by adding the ability for an event to "pause" or "resume" AUX area tracing (Adrian Hunter)

- VM profiling/sampling:
- Correct perf sampling with guest VMs (Colton Lewis)

- New hardware support:
- x86/intel: Add PMU support for Intel ArrowLake-H CPUs (Dapeng Mi)

- Misc fixes and enhancements:
- x86/intel/pt: Fix buffer full but size is 0 case (Adrian Hunter)
- x86/amd: Warn only on new bits set (Breno Leitao)
- x86/amd/uncore: Avoid a false positive warning about snprintf truncation in amd_uncore_umc_ctx_init (Jean Delvare)
- uprobes: Re-order struct uprobe_task to save some space (Christophe JAILLET)
- x86/rapl: Move the pmu allocation out of CPU hotplug (Kan Liang)
- x86/rapl: Clean up cpumask and hotplug (Kan Liang)
- uprobes: Deuglify xol_get_insn_slot/xol_free_insn_slot paths (Oleg Nesterov)

Thanks,

Ingo

------------------>
Adrian Hunter (4):
perf/x86/intel/pt: Fix buffer full but size is 0 case
perf/core: Add aux_pause, aux_resume, aux_start_paused perf/x86/intel/pt: Add support for pause / resume
perf/x86/intel: Do not enable large PEBS for events with aux actions or aux sampling

Andrii Nakryiko (3):
uprobes: switch to RCU Tasks Trace flavor for better performance
uprobes: allow put_uprobe() from non-sleepable softirq context
uprobes: SRCU-protect uretprobe lifetime (with timeout)

Breno Leitao (1):
perf/x86/amd: Warn only on new bits set

Christophe JAILLET (1):
uprobes: Re-order struct uprobe_task to save some space

Colton Lewis (5):
perf/arm: Drop unused functions
perf/core: Hoist perf_instruction_pointer() and perf_misc_flags() perf/powerpc: Use perf_arch_instruction_pointer() perf/x86: Refactor misc flag assignments
perf/core: Correct perf sampling with guest VMs

Dapeng Mi (4):
perf/x86: Refine hybrid_pmu_type defination x86/cpu/intel: Define helper to get CPU core native ID perf/x86/intel: Support hybrid PMU with multiple atom uarchs perf/x86/intel: Add PMU support for ArrowLake-H

Jean Delvare (1):
perf/x86/amd/uncore: Avoid a false positive warning about snprintf truncation in amd_uncore_umc_ctx_init

Jiri Olsa (2):
uprobe: Add data pointer to consumer handlers
uprobe: Add support for session consumer

Kan Liang (2):
perf/x86/rapl: Move the pmu allocation out of CPU hotplug perf/x86/rapl: Clean up cpumask and hotplug

Oleg Nesterov (9):
uprobes: don't abuse get_utask() in pre_ssout() and prepare_uretprobe()
uprobes: sanitiize xol_free_insn_slot()
uprobes: kill the unnecessary put_uprobe/xol_free_insn_slot in uprobe_free_utask()
uprobes: simplify xol_take_insn_slot() and its caller
uprobes: move the initialization of utask->xol_vaddr from pre_ssout() to xol_get_insn_slot()
uprobes: pass utask to xol_get_insn_slot() and xol_free_insn_slot()
uprobes: deny mremap(xol_vma)
uprobes: kill xol_area->slot_count
uprobes: fold xol_take_insn_slot() into xol_get_insn_slot()

 arch/Kconfig                                       |   1 +
 arch/arm/include/asm/perf_event.h                  |   7 -
 arch/arm/kernel/perf_callchain.c                   |  17 -
 arch/arm64/include/asm/perf_event.h                |   4 -
 arch/arm64/kernel/perf_callchain.c                 |  28 -
 arch/powerpc/include/asm/perf_event_server.h       |   6 +-
 arch/powerpc/perf/callchain.c                      |   2 +-
 arch/powerpc/perf/callchain_32.c                   |   2 +-
 arch/powerpc/perf/callchain_64.c                   |   2 +-
 arch/powerpc/perf/core-book3s.c                    |   4 +-
 arch/s390/include/asm/perf_event.h                 |   6 +-
 arch/s390/kernel/perf_event.c                      |   4 +-
 arch/x86/events/amd/core.c                         |  10 +-
 arch/x86/events/amd/uncore.c                       |   5 +-
 arch/x86/events/core.c                             |  64 ++-
 arch/x86/events/intel/core.c                       | 137 ++++-
 arch/x86/events/intel/ds.c                         |  21 +
 arch/x86/events/intel/pt.c                         |  84 ++-
 arch/x86/events/intel/pt.h                         |   6 +
 arch/x86/events/perf_event.h                       |  34 +-
 arch/x86/events/rapl.c                             | 130 ++---
 arch/x86/include/asm/cpu.h                         |   6 +
 arch/x86/include/asm/perf_event.h                  |  12 +-
 arch/x86/kernel/cpu/intel.c                        |  15 +
 include/linux/cpuhotplug.h                         |   1 -
 include/linux/perf_event.h                         |  54 +-
 include/linux/uprobes.h                            |  83 ++-
 include/uapi/linux/perf_event.h                    |  11 +-
 kernel/events/core.c                               | 102 +++-
 kernel/events/internal.h                           |   1 +
 kernel/events/uprobes.c                            | 608 +++++++++++++++------
 kernel/trace/bpf_trace.c                           |   6 +-
 kernel/trace/trace_uprobe.c                        |  12 +-
 .../selftests/bpf/bpf_testmod/bpf_testmod.c        |   2 +-
 34 files changed, 1069 insertions(+), 418 deletions(-)