[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for Xen 4.5] xen/arm: Add support for GICv3 for domU
Hi Jan, On 10/31/2014 01:37 PM, Jan Beulich wrote: >>>> On 31.10.14 at 12:23, <julien.grall@xxxxxxxxxx> wrote: >> On 31/10/2014 09:02, Jan Beulich wrote: >>>> + domctl->u.configuredomain.gic_version = gic_version; >>>> + >>>> + /* TODO: Make the copy generic for all ARCH domctl */ >>>> + if ( __copy_to_guest(u_domctl, domctl, 1) ) >>> >>> With just a single field needing copying, __copy_field_to_guest() >>> would be quite a bit more efficient. >> >> The configuredomain structure contains only a field and I plan to rework >> this code for Xen 4.6 to make this copy generic within the function (see >> the TODO). >> >> Anyway, for this use case using __copy_field_to_guest is not more >> efficient for ARM. > > But you don't say why. To me there's a difference between copying > 1 byte or 128. The cost of copying 128 bytes is negligible compare to the complexity of raw_copy_to_guest. Furthermore this DOMCTL is not in an hot path (will always been called once during domain boot). Hence, this copy will be common to all ARCH domctl in Xen 4.6. I didn't do the change know to avoid touching too much code. > >>>> --- a/xen/include/public/domctl.h >>>> +++ b/xen/include/public/domctl.h >>>> @@ -68,6 +68,19 @@ struct xen_domctl_createdomain { >>>> typedef struct xen_domctl_createdomain xen_domctl_createdomain_t; >>>> DEFINE_XEN_GUEST_HANDLE(xen_domctl_createdomain_t); >>>> >>>> +#if defined(__arm__) || defined(__aarch64__) >>>> +#define XEN_DOMCTL_CONFIG_GIC_DEFAULT 0 >>>> +#define XEN_DOMCTL_CONFIG_GIC_V2 1 >>>> +#define XEN_DOMCTL_CONFIG_GIC_V3 2 >>>> +/* XEN_DOMCTL_configure_domain */ >>>> +struct xen_domctl_configuredomain { >>> >>> The naming suggests that the #if really should be around just the >>> gic_version field (with a dummy field in the #else case to be C89 >>> compatible, e.g. a zero width unnamed bitfield) and the >>> corresponding #define-s above, ... >> >> It's a bit like xen_domctl_setvcpuextstate which is defined only for x86 >> while the name seem pretty common. > > That's a particularly bad example to compare with, as this is about > CPU registers having got added after the ABI was defined. This > (hopefully) shouldn't have many similar cases on other architectures. > Plus, doing things in an odd way just because there's an odd > precedent is always suspicious to me. > >> I think we have to stay consistent in this header and not defining >> DOMCTL which is not used for a specific architecture. > > Yes, I always advocate for consistency - provided what is there is > a reasonable reference and was done properly. Would renaming the structure name with "xen_arm_domctl_configuredomain" would be sufficient for you? Regards, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |