* [GIT PULL] Performance events changes for v6.19
@ 2025-12-01 10:45 Ingo Molnar
2025-12-02 5:54 ` pr-tracker-bot
2026-03-09 23:37 ` Ian Rogers
0 siblings, 2 replies; 3+ messages in thread
From: Ingo Molnar @ 2025-12-01 10:45 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Peter Zijlstra, Arnaldo Carvalho de Melo, Jiri Olsa,
Alexander Shishkin, Mark Rutland, Namhyung Kim, linux-perf-users
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-12-01
# HEAD: 9929dffce5ed7e2988e0274f4db98035508b16d9 perf/x86/intel: Fix and clean up intel_pmu_drain_arch_pebs() type use
Performance events changes for v6.19:
Callchain support:
- Add support for deferred user-space stack unwinding for
perf, enabled on x86. (Peter Zijlstra, Steven Rostedt)
- unwind_user/x86: Enable frame pointer unwinding on x86
(Josh Poimboeuf)
x86 PMU support and infrastructure:
- x86/insn: Simplify for_each_insn_prefix() (Peter Zijlstra)
- x86/insn,uprobes,alternative: Unify insn_is_nop()
(Peter Zijlstra)
Intel PMU driver:
- Large series to prepare for and implement architectural PEBS
support for Intel platforms such as Clearwater Forest (CWF)
and Panther Lake (PTL). (Dapeng Mi, Kan Liang)
- Check dynamic constraints (Kan Liang)
- Optimize PEBS extended config (Peter Zijlstra)
- cstates: Remove PC3 support from LunarLake (Zhang Rui)
- cstates: Add Pantherlake support (Zhang Rui)
- cstates: Clearwater Forest support (Zide Chen)
AMD PMU driver:
- x86/amd: Check event before enable to avoid GPF (George Kennedy)
Fixes and cleanups:
- task_work: Fix NMI race condition (Peter Zijlstra)
- perf/x86: Fix NULL event access and potential PEBS record loss
(Dapeng Mi)
- Misc other fixes and cleanups.
(Dapeng Mi, Ingo Molnar, Peter Zijlstra)
Thanks,
Ingo
------------------>
Dapeng Mi (12):
perf/x86: Remove redundant is_x86_event() prototype
perf/x86: Fix NULL event access and potential PEBS record loss
perf/x86/intel: Replace x86_pmu.drain_pebs calling with static call
perf/x86/intel: Correct large PEBS flag check
perf/x86/intel: Initialize architectural PEBS
perf/x86/intel/ds: Factor out PEBS record processing code to functions
perf/x86/intel/ds: Factor out PEBS group processing code to functions
perf/x86/intel: Process arch-PEBS records or record fragments
perf/x86/intel: Allocate arch-PEBS buffer and initialize PEBS_BASE MSR
perf/x86/intel: Update dyn_constraint base on PEBS event precise level
perf/x86/intel: Setup PEBS data configuration and enable legacy groups
perf/x86/intel: Add counter group support for arch-PEBS
George Kennedy (1):
perf/x86/amd: Check event before enable to avoid GPF
Ingo Molnar (1):
perf/x86/intel: Fix and clean up intel_pmu_drain_arch_pebs() type use
Josh Poimboeuf (1):
unwind_user/x86: Enable frame pointer unwinding on x86
Kan Liang (1):
perf/x86/intel: Add a check for dynamic constraints
Peter Zijlstra (19):
x86/insn,uprobes,alternative: Unify insn_is_nop()
x86/insn: Simplify for_each_insn_prefix()
task_work: Fix NMI race condition
unwind: Shorten lines
unwind: Add required include files
unwind: Simplify unwind_reset_info()
unwind: Add comment to unwind_deferred_task_exit()
unwind: Fix unwind_deferred_request() vs NMI
unwind: Clarify calling context
unwind: Simplify unwind_user_faultable()
unwind: Make unwind_task_info::unwind_mask consistent
unwind: Simplify unwind_user_next_fp() alignment check
unwind: Implement compat fp unwind
unwind_user/x86: Teach FP unwind about start of function
perf: Support deferred user unwind
unwind_user/x86: Fix arch=um build
entry,unwind/deferred: Fix unwind_reset_info() placement
perf/x86/intel: Check PEBS dyn_constraints
perf/x86/intel: Optimize PEBS extended config
Zhang Rui (2):
perf/x86/intel/cstate: Remove PC3 support from LunarLake
perf/x86/intel/cstate: Add Pantherlake support
Zide Chen (1):
perf/x86/intel/cstate: Add Clearwater Forest support
arch/x86/Kconfig | 1 +
arch/x86/boot/compressed/sev-handle-vc.c | 3 +-
arch/x86/events/amd/core.c | 7 +-
arch/x86/events/core.c | 66 +---
arch/x86/events/intel/core.c | 444 +++++++++++++++++++++--
arch/x86/events/intel/cstate.c | 18 +-
arch/x86/events/intel/ds.c | 601 +++++++++++++++++++++++++------
arch/x86/events/perf_event.h | 41 ++-
arch/x86/include/asm/insn-eval.h | 2 +
arch/x86/include/asm/insn.h | 5 +-
arch/x86/include/asm/intel_ds.h | 10 +-
arch/x86/include/asm/msr-index.h | 20 +
arch/x86/include/asm/perf_event.h | 116 +++++-
arch/x86/include/asm/unwind_user.h | 41 +++
arch/x86/include/asm/uprobes.h | 9 +
arch/x86/kernel/alternative.c | 20 +-
arch/x86/kernel/kprobes/core.c | 3 +-
arch/x86/kernel/uprobes.c | 70 ++--
arch/x86/lib/insn-eval.c | 151 +++++++-
include/linux/irq-entry-common.h | 2 +-
include/linux/perf_event.h | 2 +-
include/linux/unwind_deferred.h | 52 ++-
include/linux/unwind_deferred_types.h | 18 +-
include/linux/unwind_user_types.h | 2 +
include/uapi/linux/perf_event.h | 21 +-
kernel/bpf/stackmap.c | 4 +-
kernel/events/callchain.c | 14 +-
kernel/events/core.c | 78 +++-
kernel/exit.c | 7 +-
kernel/task_work.c | 8 +-
kernel/unwind/deferred.c | 44 ++-
kernel/unwind/user.c | 59 ++-
tools/arch/x86/include/asm/insn.h | 5 +-
tools/include/uapi/linux/perf_event.h | 21 +-
34 files changed, 1627 insertions(+), 338 deletions(-)
create mode 100644 arch/x86/include/asm/unwind_user.h
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [GIT PULL] Performance events changes for v6.19 2025-12-01 10:45 [GIT PULL] Performance events changes for v6.19 Ingo Molnar @ 2025-12-02 5:54 ` pr-tracker-bot 2026-03-09 23:37 ` Ian Rogers 1 sibling, 0 replies; 3+ messages in thread From: pr-tracker-bot @ 2025-12-02 5:54 UTC (permalink / raw) To: Ingo Molnar Cc: Linus Torvalds, linux-kernel, Peter Zijlstra, Arnaldo Carvalho de Melo, Jiri Olsa, Alexander Shishkin, Mark Rutland, Namhyung Kim, linux-perf-users The pull request you sent on Mon, 1 Dec 2025 11:45:47 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf-core-2025-12-01 has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/6c26fbe8c9d3e932dce6afe2505b19b4b261cae9 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [GIT PULL] Performance events changes for v6.19 2025-12-01 10:45 [GIT PULL] Performance events changes for v6.19 Ingo Molnar 2025-12-02 5:54 ` pr-tracker-bot @ 2026-03-09 23:37 ` Ian Rogers 1 sibling, 0 replies; 3+ messages in thread From: Ian Rogers @ 2026-03-09 23:37 UTC (permalink / raw) To: Peter Zijlstra Cc: Linus Torvalds, Ingo Molnar, linux-kernel, Arnaldo Carvalho de Melo, Jiri Olsa, Alexander Shishkin, Mark Rutland, Namhyung Kim, linux-perf-users On Mon, Dec 1, 2025 at 2:47 AM Ingo Molnar <mingo@kernel.org> wrote: > > 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-12-01 > > # HEAD: 9929dffce5ed7e2988e0274f4db98035508b16d9 perf/x86/intel: Fix and clean up intel_pmu_drain_arch_pebs() type use > > Performance events changes for v6.19: > > Callchain support: > > - Add support for deferred user-space stack unwinding for > perf, enabled on x86. (Peter Zijlstra, Steven Rostedt) > > - unwind_user/x86: Enable frame pointer unwinding on x86 > (Josh Poimboeuf) > > x86 PMU support and infrastructure: > > - x86/insn: Simplify for_each_insn_prefix() (Peter Zijlstra) > > - x86/insn,uprobes,alternative: Unify insn_is_nop() > (Peter Zijlstra) > > Intel PMU driver: > > - Large series to prepare for and implement architectural PEBS > support for Intel platforms such as Clearwater Forest (CWF) > and Panther Lake (PTL). (Dapeng Mi, Kan Liang) > > - Check dynamic constraints (Kan Liang) > > - Optimize PEBS extended config (Peter Zijlstra) I'm not seeing this patch on the mailing list, so I'm asking here. An AI review flagged this change and the condition it describes sounds unlikely but possible: > @@ -8171,8 +8169,13 @@ > if (!is_hybrid() && boot_cpu_has(X86_FEATURE_ARCH_PERFMON_EXT)) > update_pmu_cap(NULL); > > - if (x86_pmu.arch_pebs) > + if (x86_pmu.arch_pebs) { > + static_call_update(intel_pmu_disable_event_ext, > + intel_pmu_disable_event_ext); > + static_call_update(intel_pmu_enable_event_ext, > + intel_pmu_enable_event_ext); > pr_cont("Architectural PEBS, "); > + } > > intel_pmu_check_counters_mask(&x86_pmu.cntr_mask64, > &x86_pmu.fixed_cntr_mask64, Does this code expose us to a #GP on hybrid platforms if the CPUID check fails? For hybrid processors, update_pmu_cap() is deferred to init_hybrid_pmu(), which runs after intel_pmu_init() sets up the static calls. If update_pmu_cap() encounters an inconsistent CPUID and clears x86_pmu.arch_pebs, the static calls remain patched. This will cause intel_pmu_enable_event_ext() to execute on precise events and access MSR_IA32_PEBS_INDEX, potentially crashing the kernel. Thanks, Ian > - cstates: Remove PC3 support from LunarLake (Zhang Rui) > > - cstates: Add Pantherlake support (Zhang Rui) > > - cstates: Clearwater Forest support (Zide Chen) > > AMD PMU driver: > > - x86/amd: Check event before enable to avoid GPF (George Kennedy) > > Fixes and cleanups: > > - task_work: Fix NMI race condition (Peter Zijlstra) > > - perf/x86: Fix NULL event access and potential PEBS record loss > (Dapeng Mi) > > - Misc other fixes and cleanups. > (Dapeng Mi, Ingo Molnar, Peter Zijlstra) > > Thanks, > > Ingo > > ------------------> > Dapeng Mi (12): > perf/x86: Remove redundant is_x86_event() prototype > perf/x86: Fix NULL event access and potential PEBS record loss > perf/x86/intel: Replace x86_pmu.drain_pebs calling with static call > perf/x86/intel: Correct large PEBS flag check > perf/x86/intel: Initialize architectural PEBS > perf/x86/intel/ds: Factor out PEBS record processing code to functions > perf/x86/intel/ds: Factor out PEBS group processing code to functions > perf/x86/intel: Process arch-PEBS records or record fragments > perf/x86/intel: Allocate arch-PEBS buffer and initialize PEBS_BASE MSR > perf/x86/intel: Update dyn_constraint base on PEBS event precise level > perf/x86/intel: Setup PEBS data configuration and enable legacy groups > perf/x86/intel: Add counter group support for arch-PEBS > > George Kennedy (1): > perf/x86/amd: Check event before enable to avoid GPF > > Ingo Molnar (1): > perf/x86/intel: Fix and clean up intel_pmu_drain_arch_pebs() type use > > Josh Poimboeuf (1): > unwind_user/x86: Enable frame pointer unwinding on x86 > > Kan Liang (1): > perf/x86/intel: Add a check for dynamic constraints > > Peter Zijlstra (19): > x86/insn,uprobes,alternative: Unify insn_is_nop() > x86/insn: Simplify for_each_insn_prefix() > task_work: Fix NMI race condition > unwind: Shorten lines > unwind: Add required include files > unwind: Simplify unwind_reset_info() > unwind: Add comment to unwind_deferred_task_exit() > unwind: Fix unwind_deferred_request() vs NMI > unwind: Clarify calling context > unwind: Simplify unwind_user_faultable() > unwind: Make unwind_task_info::unwind_mask consistent > unwind: Simplify unwind_user_next_fp() alignment check > unwind: Implement compat fp unwind > unwind_user/x86: Teach FP unwind about start of function > perf: Support deferred user unwind > unwind_user/x86: Fix arch=um build > entry,unwind/deferred: Fix unwind_reset_info() placement > perf/x86/intel: Check PEBS dyn_constraints > perf/x86/intel: Optimize PEBS extended config > > Zhang Rui (2): > perf/x86/intel/cstate: Remove PC3 support from LunarLake > perf/x86/intel/cstate: Add Pantherlake support > > Zide Chen (1): > perf/x86/intel/cstate: Add Clearwater Forest support > > > arch/x86/Kconfig | 1 + > arch/x86/boot/compressed/sev-handle-vc.c | 3 +- > arch/x86/events/amd/core.c | 7 +- > arch/x86/events/core.c | 66 +--- > arch/x86/events/intel/core.c | 444 +++++++++++++++++++++-- > arch/x86/events/intel/cstate.c | 18 +- > arch/x86/events/intel/ds.c | 601 +++++++++++++++++++++++++------ > arch/x86/events/perf_event.h | 41 ++- > arch/x86/include/asm/insn-eval.h | 2 + > arch/x86/include/asm/insn.h | 5 +- > arch/x86/include/asm/intel_ds.h | 10 +- > arch/x86/include/asm/msr-index.h | 20 + > arch/x86/include/asm/perf_event.h | 116 +++++- > arch/x86/include/asm/unwind_user.h | 41 +++ > arch/x86/include/asm/uprobes.h | 9 + > arch/x86/kernel/alternative.c | 20 +- > arch/x86/kernel/kprobes/core.c | 3 +- > arch/x86/kernel/uprobes.c | 70 ++-- > arch/x86/lib/insn-eval.c | 151 +++++++- > include/linux/irq-entry-common.h | 2 +- > include/linux/perf_event.h | 2 +- > include/linux/unwind_deferred.h | 52 ++- > include/linux/unwind_deferred_types.h | 18 +- > include/linux/unwind_user_types.h | 2 + > include/uapi/linux/perf_event.h | 21 +- > kernel/bpf/stackmap.c | 4 +- > kernel/events/callchain.c | 14 +- > kernel/events/core.c | 78 +++- > kernel/exit.c | 7 +- > kernel/task_work.c | 8 +- > kernel/unwind/deferred.c | 44 ++- > kernel/unwind/user.c | 59 ++- > tools/arch/x86/include/asm/insn.h | 5 +- > tools/include/uapi/linux/perf_event.h | 21 +- > 34 files changed, 1627 insertions(+), 338 deletions(-) > create mode 100644 arch/x86/include/asm/unwind_user.h > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-03-09 23:37 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-12-01 10:45 [GIT PULL] Performance events changes for v6.19 Ingo Molnar 2025-12-02 5:54 ` pr-tracker-bot 2026-03-09 23:37 ` Ian Rogers
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.