[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v9 09/20] x86/VPMU: Add public xenpmu.h
>>> Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> 08/18/14 6:02 PM >>> >On 08/11/2014 12:15 PM, Boris Ostrovsky wrote: >> On 08/11/2014 10:08 AM, Jan Beulich wrote: >>>> + ctxt = xzalloc_bytes(sizeof(struct xen_pmu_amd_ctxt) + >>>> + 2 * sizeof(uint64_t) * AMD_MAX_COUNTERS); >>> So I guess this is one of said sizeof()-s, and I continue to think this >>> would benefit from using a proper field. It is my understanding that >>> the real (non-C89 compliant) declaration of struct xen_pmu_amd_ctxt >>> would be >>> >>> struct xen_pmu_amd_ctxt { >>> /* Offsets to counter and control MSRs (relative to >>> xen_arch_pmu.c.amd) */ >>> uint32_t counters; >>> uint32_t ctrls; >>> uint64_t values[]; >>> }; >> >> OK, this should work. > >Actually, no, it won't: we decided early on that register banks should >be outside the fixed portion of the structure. Keeping values[] inside >xen_pmu_amd_ctxt doesn't necessarily preclude this *if* it is never >referred to by code and is only used for determining the type. But that >would be an unreasonable requirement IMO. > >I understand the dislike to sizeof(uint64_t). OTOH, your original >concern was that we may forget to update size calculation if value >changes type sometime later. But the type cannot be anything but >uint64_t since it is used in rd/wrmsr(). I see; stay with the explicit sizeof(uint64_t) here then, but please try to use sizeof(variable-or-field) elsewhere when possible. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |