On Fri, Jun 19, 2020 at 07:04:08AM -0700, kan.li...@linux.intel.com 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;
> +             };
> +     };
> +};

Reply via email to