Re: [PATCH 20/21] perf/x86/intel/lbr: Support XSAVES/XRSTORS for LBR context switch
From: Peter Zijlstra
Date: Fri Jun 19 2020 - 15:41:48 EST
On Fri, Jun 19, 2020 at 07:04:08AM -0700, kan.liang@xxxxxxxxxxxxxxx wrote:
> The XSAVE instruction requires 64-byte alignment for state buffers. A
> 64-byte aligned kmem_cache is created for architecture LBR.
> + pmu->task_ctx_cache = create_lbr_kmem_cache(size,
> + XSAVE_ALIGNMENT);
> +struct x86_perf_task_context_arch_lbr_xsave {
> + struct x86_perf_task_context_opt opt;
> + union {
> + struct xregs_state xsave;
Due to x86_perf_task_context_opt, what guarantees you're actually at the
required alignment here?
> + struct {
> + struct fxregs_state i387;
> + struct xstate_header header;
> + struct arch_lbr_state lbr;
> + };
> + };
> +};