[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH V6 1/2] xen/arm: Introduce gpaddr_bits field to struct xen_domctl_getdomaininfo
On 12.10.2021 13:28, Oleksandr wrote: > On 12.10.21 12:24, Jan Beulich wrote: >> On 11.10.2021 19:48, Oleksandr Tyshchenko wrote: >>> @@ -150,6 +150,7 @@ struct xen_domctl_getdomaininfo { >>> uint32_t ssidref; >>> xen_domain_handle_t handle; >>> uint32_t cpupool; >>> + uint8_t gpaddr_bits; /* Guest physical address space size. */ >>> struct xen_arch_domainconfig arch_config; >> On the basis of the above, please add uint8_t pad[3] (or perhaps >> better pad[7] to be independent of the present >> alignof(struct xen_arch_domainconfig) == 4) and make sure the >> array will always be zero-filled, such that the padding space can >> subsequently be assigned a purpose without needing to bump the >> interface version(s) again. > > ok, will do. > > >> >> Right now the sysctl caller of getdomaininfo() clears the full >> structure (albeit only once, so stale / inapplicable data might get >> reported for higher numbered domains if any field was filled only >> in certain cases), while the domctl one doesn't. Maybe it would be >> best looking forward if the domctl path also cleared the full buffer >> up front, or if the clearing was moved into the function. (In the >> latter case some writes of zeros into the struct could be eliminated >> in return.) > > Well, I would be OK either way, with a little preference for the latter. > > Is it close to what you meant? Yes, just that ... > --- a/xen/common/domctl.c > +++ b/xen/common/domctl.c > @@ -69,10 +69,10 @@ void getdomaininfo(struct domain *d, struct > xen_domctl_getdomaininfo *info) > int flags = XEN_DOMINF_blocked; > struct vcpu_runstate_info runstate; > > + memset(info, 0, sizeof(*info)); > + > info->domain = d->domain_id; > info->max_vcpu_id = XEN_INVALID_MAX_VCPU_ID; > - info->nr_online_vcpus = 0; > - info->ssidref = 0; ... there are a few more "... = 0" further down iirc. >> Perhaps, once properly first zero-filling the struct in all cases, >> the padding field near the start should also be made explicit, >> clarifying visually that it is an option to use the space there for >> something that makes sense to live early in the struct (i.e. I >> wouldn't necessarily recommend putting there the new field you add, >> albeit - as mentioned near the top - that's certainly an option). > > I read this as a request to also add uint16_t pad after "domid_t domain" > at least. Correct? I guess I should really leave this up to you - that's largely a cosmetic thing after all once clearing the whole struct up front. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |