On 08/04/2021 13:17, Jan Beulich wrote:
> There is a difference in generated code: xzalloc_bytes() forces
> SMP_CACHE_BYTES alignment. I think we not only don't need this here, but
> actually don't want it.
>
> Signed-off-by: Jan Beulich <jbeul...@suse.com>

Acked-by: Andrew Cooper <andrew.coop...@citrix.com>

>
> --- a/xen/arch/x86/cpu/vpmu_intel.c
> +++ b/xen/arch/x86/cpu/vpmu_intel.c
> @@ -461,10 +461,10 @@ static int core2_vpmu_alloc_resource(str
>              goto out_err;
>      }
>  
> -    core2_vpmu_cxt = xzalloc_bytes(sizeof(*core2_vpmu_cxt) +
> -                                   sizeof(uint64_t) * fixed_pmc_cnt +
> -                                   sizeof(struct xen_pmu_cntr_pair) *
> -                                   arch_pmc_cnt);
> +    core2_vpmu_cxt = xzalloc_flex_struct(struct xen_pmu_intel_ctxt, regs,
> +                                         fixed_pmc_cnt + arch_pmc_cnt *
> +                                         (sizeof(struct xen_pmu_cntr_pair) /
> +                                          sizeof(*core2_vpmu_cxt->regs)));
>      p = xzalloc(uint64_t);

However, this is very wtf, and clearly wants reworking.  I'll see if I
can find some time, unless anyone else beats me to it.

~Andrew

>      if ( !core2_vpmu_cxt || !p )
>          goto out_err;
>


Reply via email to