All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Jiri Olsa <jolsa@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Andi Kleen <ak@linux.intel.com>,
	Eranian Stephane <eranian@google.com>,
	Mark Rutland <mark.rutland@arm.com>,
	broonie@kernel.org, Ravi Bangoria <ravi.bangoria@amd.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Zide Chen <zide.chen@intel.com>,
	Falcon Thomas <thomas.falcon@intel.com>,
	Dapeng Mi <dapeng1.mi@intel.com>,
	Xudong Hao <xudong.hao@intel.com>
Subject: Re: [Patch v10 00/23] Support SIMD/eGPRs/SSP registers sampling for perf
Date: Wed, 22 Jul 2026 08:17:44 +0800	[thread overview]
Message-ID: <0352f404-ef7e-4aab-a5a9-e506e7646c70@linux.intel.com> (raw)
In-Reply-To: <CAP-5=fXtZPNBZAWjZR051Ex83PFKMeMMvupdfyU9SeOg1i5vOg@mail.gmail.com>


On 7/22/2026 1:42 AM, Ian Rogers wrote:
> On Mon, Jul 20, 2026 at 11:32 PM Dapeng Mi <dapeng1.mi@linux.intel.com> wrote:
>> The v10 patch series requires the prerequisite bug-fix patchset:
>> https://lore.kernel.org/all/20260717080342.1879573-1-dapeng1.mi@linux.intel.com/
>>
>> Patch layout:
>> - Patches 1-5: Bug fixes and cleanup needed before enabling XSAVES-based
>>   sampling in NMI context.
>> - Patches 6-7: FPU-related preparation, including xsaves_nmi() and
>>   related cleanup/optimization.
>> - Patches 8-11: PMI-based XMM sampling support through the existing
>>   sample_regs_intr/sample_regs_user interfaces for both
>>   PERF_SAMPLE_REGS_INTR and PERF_SAMPLE_REGS_USER.
>> - Patches 12-19: New SIMD register interface and support for
>>   XMM/YMM/ZMM/OPMASK, APX eGPRs, and SSP through that interface.
>> - Patch 20: Extend arch PEBS to support YMM/ZMM/OPMASK, APX eGPRs, and
>>   SSP with the new interface.
>> - Patch 21: Enable new interface based sampling.
>> - Patches 22-23: arch PEBS bug fix and sanity check.
> Hi Dapeng,
>
> The patch series didn't apply in Sashiko:
> https://sashiko.dev/#/patchset/20260721062506.3745816-1-dapeng1.mi%40linux.intel.com
> I believe the patches should be against tip.git perf/core
> https://sashiko.dev/#/log/baseline/47919/2
> which was last updated 2 weeks ago:
> https://web.git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=perf/core&id=edda9051e267b7390c7ce24b1b71434414ad156e
>
> Since the change is quite large it would be interesting to read the
> Sashiko reviews.

Ian, thanks for reminding this. The reason that sashiko failed to apply
this patchset is that this v10 patchset depends on the below prerequisite
bug-fix patchset which is based on the latest perf/core tree.

https://lore.kernel.org/all/20260717080342.1879573-1-dapeng1.mi@linux.intel.com/

We triggered several rounds local sashiko review for this patchset
internally and no real issues are found except some false positives. But
anyway, once the prerequisite patchset is merged. I would resend this
patchset and trigger the sashiko review.

Thanks.


>
> Thanks,
> Ian
>
>
>
>> Changes since v9:
>> - Patch 07/23: Update fpu_swap_kvm_fpstate() to clear fpu->__task_fpstate
>>   only after switching back to host state, ensuring that when non-NULL it
>>   points to host FPU state.
>> - Patch 11/23: Fix an issue where guest FPU state can be sampled during
>>   host user-regs sampling.
>> - Patch 13/23: Improve and streamline perf_simd_reg_validate() to enforce
>>   full-register-only sampling for SIMD registers (XMM/YMM/ZMM/OPMASK).
>> - Patch 21/23: Simplify and unify PERF_PMU_CAP_SIMD_REGS capability
>>   handling for both PEBS and non-PEBS events.
>> - Refine changelog text across the full patch series.
>>
>> Changes since v8:
>> - Patch 01/24: Fix missing PMI handler unregister on PMU initialization
>>   failure (Sashiko).
>> - Patch 11/24: Skip kernel-space SIMD sampling when exclude_kernel is
>>   set, to account for PMI skid (Sashiko).
>> - Patch 12/24: Skip guest kernel-space SIMD sampling for user register
>>   sampling.
>> - Patch 14/24: Strengthen SIMD register configuration validation in
>>   perf_simd_reg_validate() (Sashiko).
>> - Patch 17/24: Strengthen PRED (OPMASK) register configuration validation
>>   in perf_simd_reg_validate() (Sashiko).
>> - Patch 21/24: Enhance large-PEBS checks for SSP and APX eGPR registers
>>   (Sashiko).
>> - Patch 22/24: Refine PERF_PMU_CAP_SIMD_REGS setup: advertise the
>>   capability only when both XSAVES and Arch PEBS are supported (Peter).
>> - Refine patch changelogs across the series.
>>
>> Changes since V7:
>> - Validate the return value of intel_pmu_init_hybrid() (Patch 01/23).
>> - Replace pt_regs with x86_perf_regs in xen_pmu_irq_handler()
>>   (Patch 06/23).
>> - Improve event_has_extended_regs() (Patch 09/23).
>> - Explicitly ensure the allocated XSAVE area is 64-byte aligned
>>   (Patch 10/23, Sashiko).
>> - Clear the SIMD register pointers in x86_user_regs to avoid exposing
>>   stale register data to user space (Patch 11/23, Sashiko).
>> - Refine the SIMD register interface and sample data layout, and add the
>>   missing SIMD data reservation in perf_prepare_sample() for non-x86
>>   architectures (Patch 12/23, Sashiko).
>> - Improve perf_simd_reg_validate() for x86 (Patch 13/23, Sashiko).
>> - Refine SSP sampling and ensure the GPR sub-group flag is set for PEBS
>>   (Patch 19/23, Sashiko).
>> - Fix the incorrect large-PEBS check for XMM (Patch 20/23, Sashiko).
>> - Fix missing handling in x86_pmu_handle_guest_pebs() for back-to-back
>>   PMI detection (Patch 22/23, Sashiko).
>> - Strengthen the PEBS record header sanity checks to prevent invalid
>>   memory access (Patch 23/23, Sashiko).
>>
>> Changes since V6:
>> - Fix potential overwritten issue in hybrid PMU structure (patch 01/24)
>> - Restrict PEBS events work on GP counters if no PEBS baseline suggested
>>   (patch 02/24)
>> - Use per-cpu x86_intr_regs for perf_event_nmi_handler() instead of
>>   temporary variable (patch 06/24)
>> - Add helper update_fpu_state_and_flag() to ensure TIF_NEED_FPU_LOAD is
>>   set after save_fpregs_to_fpstate() call (patch 09/24)
>> - Optimize and simplify x86_pmu_sample_xregs(), etc. (patch 11/24)
>> - Add macro word_for_each_set_bit() to simplify u64 set-bit iteration
>>   (patch 13/24)
>> - Add sanity check for PEBS fragment size (patch 24/24)
>>
>> Changes since V5:
>> - Introduce 3 commits to fix newly found PEBS issues (Patch 01~03/19)
>> - Address Peter comments, including,
>>   * Fully support user-regs sampling of the SIMD/eGPRs/SSP registers
>>   * Adjust newly added fields in perf_event_attr to avoid holes
>>   * Fix the endian issue introduced by for_each_set_bit() in
>>     event/core.c
>>   * Remove some unnecessary macros from UAPI header perf_regs.h
>>   * Enhance b2b NMI detection for all PEBS handlers to ensure identical
>>     behaviors of all PEBS handlers
>> - Split perf-tools patches which would be posted in a separate patchset
>>   later
>>
>> Changes since V4:
>> - Rewrite some functions comments and commit messages (Dave)
>> - Add arch-PEBS based SIMD/eGPRs/SSP sampling support (Patch 15/19)
>> - Fix "suspecious NMI" warnning observed on PTL/NVL P-core and DMR by
>>   activating back-to-back NMI detection mechanism (Patch 16/19)
>> - Fix some minor issues on perf-tool patches (Patch 18/19)
>>
>> Changes since V3:
>> - Drop the SIMD registers if an NMI hits kernel mode for REGS_USER.
>> - Only dump the available regs, rather than zero and dump the
>>   unavailable regs. It's possible that the dumped registers are a subset
>>   of the requested registers.
>> - Some minor updates to address Dapeng's comments in V3.
>>
>> Changes since V2:
>> - Use the FPU format for the x86_pmu.ext_regs_mask as well
>> - Add a check before invoking xsaves_nmi()
>> - Add perf_simd_reg_check() to retrieve the number of available
>>   registers. If the kernel fails to get the requested registers, e.g.,
>>   XSAVES fails, nothing dumps to the userspace (the V2 dumps all 0s).
>> - Add POC perf tool patches
>>
>> Changes since V1:
>> - Apply the new interfaces to configure and dump the SIMD registers
>> - Utilize the existing FPU functions, e.g., xstate_calculate_size,
>>   get_xsave_addr().
>>
>>
>> This series adds support on x86 for sampling SIMD registers, APX eGPRs,
>> and SSP with both PMI-based and PEBS-based sampling.
>>
>> Starting with Intel Ice Lake, PEBS can sample XMM registers, but PMI-based
>> XMM sampling is still not available. On newer Intel platforms with
>> architectural PEBS support, such as Clearwater Forest and Diamond Rapids,
>> the hardware also gains support for sampling additional SIMD state
>> (XMM/YMM/ZMM/OPMASK), APX extended GPRs, and SSP.
>>
>> To support these registers consistently across both PMI and PEBS, this
>> series makes the following changes:
>>
>> 1. Adds a new perf_event_attr interface for SIMD register selection.
>>    The existing sample_regs_user/sample_regs_intr bitmaps do not have
>>    enough space to represent the full SIMD register set, so this series
>>    introduces dedicated fields for SIMD and predicate register masks and
>>    element widths.
>>
>> 2. Introduces a new sample data layout for SIMD register data.
>>    SIMD register payload is appended after the GPR payload, and a new ABI
>>    flag, PERF_SAMPLE_REGS_ABI_SIMD, indicates its presence.
>>
>> 3. Adds xsaves_nmi() to allow SIMD/eGPR/SSP sampling from PMI handlers in
>>    NMI context.
>>
>> 4. Extends the arch PEBS path to support YMM/ZMM/OPMASK, APX eGPRs, and
>>    SSP sampling.
>>
>>
>> New perf_event_attr fields
>> --------------------------
>>
>> This series adds the following fields to perf_event_attr:
>>
>>     /*
>>      * Defines the sampling SIMD/PRED(predicate) register bitmaps and
>>      * qword (8-byte) lengths.
>>      *
>>      * sample_simd_regs_enabled != 0 indicates SIMD/PRED registers are
>>      * requested. The register bitmaps and element sizes are described by:
>>      *
>>      *   sample_simd_{vec,pred}_reg_{intr,user}
>>      *   sample_simd_{vec,pred}_reg_qwords
>>      *
>>      * sample_simd_regs_enabled == 0 indicates no SIMD/PRED registers are
>>      * requested.
>>      */
>>     __u16 sample_simd_regs_enabled;
>>     __u16 sample_simd_pred_reg_qwords;
>>     __u16 sample_simd_vec_reg_qwords;
>>     __u16 __reserved_4;
>>
>>     __u32 sample_simd_pred_reg_intr;
>>     __u32 sample_simd_pred_reg_user;
>>     __u64 sample_simd_vec_reg_intr;
>>     __u64 sample_simd_vec_reg_user;
>>
>> Field semantics:
>> - sample_simd_vec_reg_qwords: qword count for regular SIMD registers
>> - sample_simd_pred_reg_qwords: qword count for predicate registers
>> - sample_simd_vec_reg_{intr,user}: SIMD register masks for
>>   PERF_SAMPLE_REGS_INTR and PERF_SAMPLE_REGS_USER
>> - sample_simd_pred_reg_{intr,user}: predicate register masks for
>>   PERF_SAMPLE_REGS_INTR and PERF_SAMPLE_REGS_USER
>> - sample_simd_regs_enabled: indicates whether the new SIMD fields are in use
>>
>> Examples:
>>
>> To sample ZMM registers for PERF_SAMPLE_REGS_INTR:
>>
>>     sample_simd_regs_enabled = 1
>>     sample_simd_vec_reg_qwords = 8          // 512 bits = 8 qwords
>>     sample_simd_vec_reg_intr = 0xffffffff   // zmm0-zmm31
>>
>> To sample OPMASK registers for PERF_SAMPLE_REGS_USER:
>>
>>     sample_simd_regs_enabled = 1
>>     sample_simd_pred_reg_qwords = 1         // 64 bits = 1 qword
>>     sample_simd_pred_reg_user = 0xff        // opmask0-opmask7
>>
>> After introducing these fields, bits [63:32] in sample_regs_user and
>> sample_regs_intr are reclaimed for APX eGPRs and SSP instead of the
>> previous XMM0-XMM15 encoding.
>>
>> Discussion of the new SIMD register interface is available at:
>> https://lore.kernel.org/lkml/20250617081458.GI1613376@noisy.programming.kicks-ass.net/
>>
>> Sample data layout
>> ------------------
>>
>> SIMD register data is appended after the GPR data.
>>
>> For PERF_SAMPLE_REGS_USER:
>>
>>     { u64 abi;                      // enum perf_sample_regs_abi
>>       u64 regs[weight(mask)];
>>       struct {
>>             u64 nr_vectors;         // 0 ... weight(sample_simd_vec_reg_user)
>>             u64 vector_qwords;      // 0 ... sample_simd_vec_reg_qwords
>>             u64 nr_pred;            // 0 ... weight(sample_simd_pred_reg_user)
>>             u64 pred_qwords;        // 0 ... sample_simd_pred_reg_qwords
>>             u64 data[nr_vectors * vector_qwords +
>>                      nr_pred * pred_qwords];
>>       } && (abi & PERF_SAMPLE_REGS_ABI_SIMD)
>>     }
>>
>> For PERF_SAMPLE_REGS_INTR:
>>
>>     { u64 abi;                      // enum perf_sample_regs_abi
>>       u64 regs[weight(mask)];
>>       struct {
>>             u64 nr_vectors;         // 0 ... weight(sample_simd_vec_reg_intr)
>>             u64 vector_qwords;      // 0 ... sample_simd_vec_reg_qwords
>>             u64 nr_pred;            // 0 ... weight(sample_simd_pred_reg_intr)
>>             u64 pred_qwords;        // 0 ... sample_simd_pred_reg_qwords
>>             u64 data[nr_vectors * vector_qwords +
>>                      nr_pred * pred_qwords];
>>       } && (abi & PERF_SAMPLE_REGS_ABI_SIMD)
>>     }
>>
>> PERF_SAMPLE_REGS_ABI_SIMD indicates that SIMD register data is present.
>>
>> The metadata fields are encoded as u64 to keep perf tool parsing and
>> cross-endian support straightforward.
>>
>> Example
>> -------
>>
>>   $ perf record -I?
>>   available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10
>>   R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27
>>   R28 R29 R30 R31 SSP XMM0-15 YMM0-15 ZMM0-31 OPMASK0-7
>>
>>   $ perf record --user-regs=?
>>   available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10
>>   R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27
>>   R28 R29 R30 R31 SSP XMM0-15 YMM0-15 ZMM0-31 OPMASK0-7
>>
>>   $ perf record -e branches:p \
>>         -Iax,bx,r8,r16,r31,ssp,xmm,ymm,zmm,opmask \
>>         -c 100000 ./test
>>   $ perf report -D
>>
>>   ...
>>   14027761992115 0xcf30 [0x8a8]: PERF_RECORD_SAMPLE(IP, 0x1): 29964/29964:
>>   0xffffffff9f085e24 period: 100000 addr: 0
>>   ... intr regs: mask 0x18001010003 ABI 64-bit
>>   .... AX    0xdffffc0000000000
>>   .... BX    0xffff8882297685e8
>>   .... R8    0x0000000000000000
>>   .... R16   0x0000000000000000
>>   .... R31   0x0000000000000000
>>   .... SSP   0x0000000000000000
>>   ... SIMD ABI nr_vectors 32 vector_qwords 8 nr_pred 8 pred_qwords 1
>>   .... ZMM[0][0] 0x616c2f656d6f682f
>>   .... ZMM[0][1] 0x696c2f7265737562
>>   ...
>>   .... ZMM[31][7] 0x0000000000000000
>>   .... OPMASK[0] 0x00000000fffffe00
>>   ....
>>   .... OPMASK[7] 0x0000000000000000
>>   ...
>>
>> Testing
>> -------
>>
>> The following intr-regs, user-regs, and combined sampling tests were run
>> on DMR and NVL. The sampled register data was reported correctly and no
>> issues were observed.
>>
>>   $ ./perf record -e branches:p \
>>         -Iax,bx,r8,r16,r31,ssp,xmm,ymm,zmm,opmask -b -c 10000 sleep 1
>>
>>   $ ./perf record -e branches \
>>         -Iax,bx,r8,r16,r31,ssp,xmm,ymm,zmm,opmask -b -c 10000 sleep 1
>>
>>   $ ./perf record -e branches:p \
>>         --user-regs=ax,bx,r8,r16,r31,ssp,xmm,ymm,zmm,opmask \
>>         -b -c 10000 sleep 1
>>
>>   $ ./perf record -e branches \
>>         --user-regs=ax,bx,r8,r16,r31,ssp,xmm,ymm,zmm,opmask \
>>         -b -c 10000 sleep 1
>>
>>   $ ./perf record -e branches:p \
>>         -Ixmm,ymm,zmm,opmask \
>>         --user-regs=ax,bx,r8,r16,r31,ssp \
>>         -b -c 10000 sleep 1
>>
>>   $ ./perf record -e branches:p \
>>         --user-regs=xmm,ymm,zmm,opmask \
>>         -Iax,bx,r8,r16,r31,ssp \
>>         -b -c 10000 sleep 1
>>
>>   $ ./perf record -e branches:p \
>>         -Iax,bx,r9,r17,r30,ssp \
>>         --user-regs=ax,bx,r8,r16,r31,ssp \
>>         -b -c 10000 sleep 1
>>
>>   $ ./perf record -e branches:p \
>>         -Ixmm,opmask --user-regs=zmm \
>>         -b -c 10000 taskset -c 0 sleep 1
>>
>>
>> History:
>>   v9: https://lore.kernel.org/all/20260706015439.3040804-1-dapeng1.mi@linux.intel.com/
>>   v8: https://lore.kernel.org/all/20260529075645.580362-1-dapeng1.mi@linux.intel.com/
>>   v7: https://lore.kernel.org/all/20260324004118.3772171-1-dapeng1.mi@linux.intel.com/
>>   v6: https://lore.kernel.org/all/20260209072047.2180332-1-dapeng1.mi@linux.intel.com/
>>   v5: https://lore.kernel.org/all/20251203065500.2597594-1-dapeng1.mi@linux.intel.com/
>>   v4: https://lore.kernel.org/all/20250925061213.178796-1-dapeng1.mi@linux.intel.com/
>>   v3: https://lore.kernel.org/lkml/20250815213435.1702022-1-kan.liang@linux.intel.com/
>>   v2: https://lore.kernel.org/lkml/20250626195610.405379-1-kan.liang@linux.intel.com/
>>   v1: https://lore.kernel.org/lkml/20250613134943.3186517-1-kan.liang@linux.intel.com/
>>
>>
>> Dapeng Mi (20):
>>   perf/x86: Move hybrid PMU initialization before x86_pmu_starting_cpu()
>>   perf/x86/intel: Enable large PEBS sampling for XMMs
>>   perf/x86/intel: Convert x86_perf_regs to per-cpu variables
>>   perf: Eliminate duplicate arch-specific function definitions
>>   perf/x86: Use x86_perf_regs in NMI handlers
>>   x86/fpu: Add update_fpu_state_and_flag() helper
>>   perf/x86/intel: Centralize PERF_PMU_CAP_EXTENDED_REGS updates
>>   perf/x86: Enable XMM register sampling for non-PEBS events
>>   perf/x86: Enable XMM register sampling for REGS_USER case
>>   perf/x86: Support XMM sampling using sample_simd_vec_reg_* fields
>>   perf/x86: Support YMM sampling using sample_simd_vec_reg_* fields
>>   perf/x86: Support ZMM sampling using sample_simd_vec_reg_* fields
>>   perf/x86: Support OPMASK sampling using sample_simd_pred_reg_* fields
>>   perf: Enhance perf_reg_validate() with simd_enabled argument
>>   perf/x86: Support eGPRs sampling using sample_regs_* fields
>>   perf/x86: Support SSP sampling using sample_regs_* fields
>>   perf/x86/intel: Support arch-PEBS based SIMD/eGPRs sampling
>>   perf/x86/intel: Advertise PERF_PMU_CAP_SIMD_REGS capability
>>   perf/x86: Activate back-to-back NMI detection for arch-PEBS induced
>>     NMIs
>>   perf/x86/intel: Add sanity check for PEBS record/fragment size
>>
>> Kan Liang (3):
>>   x86/fpu/xstate: Add xsaves_nmi() helper
>>   perf: Move and enhance has_extended_regs() for arch-specific use
>>   perf: Add sampling support for SIMD registers
>>
>>  arch/arm/kernel/perf_regs.c           |   8 +-
>>  arch/arm64/kernel/perf_regs.c         |   8 +-
>>  arch/csky/kernel/perf_regs.c          |   8 +-
>>  arch/loongarch/kernel/perf_regs.c     |   8 +-
>>  arch/mips/kernel/perf_regs.c          |   8 +-
>>  arch/parisc/kernel/perf_regs.c        |   8 +-
>>  arch/powerpc/perf/perf_regs.c         |   2 +-
>>  arch/riscv/kernel/perf_regs.c         |   8 +-
>>  arch/s390/kernel/perf_regs.c          |   2 +-
>>  arch/x86/events/core.c                | 483 +++++++++++++++++++++++++-
>>  arch/x86/events/intel/core.c          | 108 ++++--
>>  arch/x86/events/intel/ds.c            | 232 ++++++++++---
>>  arch/x86/events/perf_event.h          | 208 ++++++++++-
>>  arch/x86/include/asm/fpu/sched.h      |   5 +-
>>  arch/x86/include/asm/fpu/xstate.h     |   3 +
>>  arch/x86/include/asm/msr-index.h      |   7 +
>>  arch/x86/include/asm/perf_event.h     |  35 +-
>>  arch/x86/include/uapi/asm/perf_regs.h |  53 +++
>>  arch/x86/kernel/fpu/core.c            |  33 +-
>>  arch/x86/kernel/fpu/xstate.c          |  25 +-
>>  arch/x86/kernel/perf_regs.c           | 174 ++++++++--
>>  arch/x86/xen/pmu.c                    |   5 +-
>>  include/linux/perf_event.h            |  23 ++
>>  include/linux/perf_regs.h             |  36 +-
>>  include/uapi/linux/perf_event.h       |  49 ++-
>>  kernel/events/core.c                  | 177 +++++++++-
>>  26 files changed, 1490 insertions(+), 226 deletions(-)
>>
>> --
>> 2.34.1
>>

      reply	other threads:[~2026-07-22  0:17 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-21  6:24 [Patch v10 00/23] Support SIMD/eGPRs/SSP registers sampling for perf Dapeng Mi
2026-07-21  6:24 ` [Patch v10 01/23] perf/x86: Move hybrid PMU initialization before x86_pmu_starting_cpu() Dapeng Mi
2026-07-21  6:24 ` [Patch v10 02/23] perf/x86/intel: Enable large PEBS sampling for XMMs Dapeng Mi
2026-07-21  6:24 ` [Patch v10 03/23] perf/x86/intel: Convert x86_perf_regs to per-cpu variables Dapeng Mi
2026-07-21  6:24 ` [Patch v10 04/23] perf: Eliminate duplicate arch-specific function definitions Dapeng Mi
2026-07-21  6:24 ` [Patch v10 05/23] perf/x86: Use x86_perf_regs in NMI handlers Dapeng Mi
2026-07-21  6:24 ` [Patch v10 06/23] x86/fpu/xstate: Add xsaves_nmi() helper Dapeng Mi
2026-07-21  6:24 ` [Patch v10 07/23] x86/fpu: Add update_fpu_state_and_flag() helper Dapeng Mi
2026-07-21  6:24 ` [Patch v10 08/23] perf: Move and enhance has_extended_regs() for arch-specific use Dapeng Mi
2026-07-21  6:24 ` [Patch v10 09/23] perf/x86/intel: Centralize PERF_PMU_CAP_EXTENDED_REGS updates Dapeng Mi
2026-07-21  6:24 ` [Patch v10 10/23] perf/x86: Enable XMM register sampling for non-PEBS events Dapeng Mi
2026-07-21  6:24 ` [Patch v10 11/23] perf/x86: Enable XMM register sampling for REGS_USER case Dapeng Mi
2026-07-21  6:24 ` [Patch v10 12/23] perf: Add sampling support for SIMD registers Dapeng Mi
2026-07-21  6:24 ` [Patch v10 13/23] perf/x86: Support XMM sampling using sample_simd_vec_reg_* fields Dapeng Mi
2026-07-21  6:24 ` [Patch v10 14/23] perf/x86: Support YMM " Dapeng Mi
2026-07-21  6:24 ` [Patch v10 15/23] perf/x86: Support ZMM " Dapeng Mi
2026-07-21  6:24 ` [Patch v10 16/23] perf/x86: Support OPMASK sampling using sample_simd_pred_reg_* fields Dapeng Mi
2026-07-21  6:25 ` [Patch v10 17/23] perf: Enhance perf_reg_validate() with simd_enabled argument Dapeng Mi
2026-07-21  6:25 ` [Patch v10 18/23] perf/x86: Support eGPRs sampling using sample_regs_* fields Dapeng Mi
2026-07-21  6:25 ` [Patch v10 19/23] perf/x86: Support SSP " Dapeng Mi
2026-07-21  6:25 ` [Patch v10 20/23] perf/x86/intel: Support arch-PEBS based SIMD/eGPRs sampling Dapeng Mi
2026-07-21  6:25 ` [Patch v10 21/23] perf/x86/intel: Advertise PERF_PMU_CAP_SIMD_REGS capability Dapeng Mi
2026-07-21  6:25 ` [Patch v10 22/23] perf/x86: Activate back-to-back NMI detection for arch-PEBS induced NMIs Dapeng Mi
2026-07-21  6:25 ` [Patch v10 23/23] perf/x86/intel: Add sanity check for PEBS record/fragment size Dapeng Mi
2026-07-21 17:42 ` [Patch v10 00/23] Support SIMD/eGPRs/SSP registers sampling for perf Ian Rogers
2026-07-22  0:17   ` Mi, Dapeng [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0352f404-ef7e-4aab-a5a9-e506e7646c70@linux.intel.com \
    --to=dapeng1.mi@linux.intel.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=broonie@kernel.org \
    --cc=dapeng1.mi@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=eranian@google.com \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@amd.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.falcon@intel.com \
    --cc=xudong.hao@intel.com \
    --cc=zide.chen@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.