[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] pvcalls: Document explicitly the padding for all arches
On 29.04.2020 16:14, Julien Grall wrote: > Hi Jan, > > On 29/04/2020 15:05, Jan Beulich wrote: >> On 29.04.2020 16:01, Julien Grall wrote: >>> Hi, >>> >>> On 22/04/2020 10:20, Jan Beulich wrote: >>>>> Even if it was possible to use the sub-structs defined in the header >>>>> that way, keep in mind that we also wrote: >>>>> >>>>> /* dummy member to force sizeof(struct xen_pvcalls_request) >>>>> * to match across archs */ >>>>> struct xen_pvcalls_dummy { >>>>> uint8_t dummy[56]; >>>>> } dummy; >>>> >>>> This has nothing to do with how a consumer may use the structs. >>>> >>>>> And the spec also clarifies that the size of each specific request is >>>>> always 56 bytes. >>>> >>>> Sure, and I didn't mean to imply that a consumer would be allowed >>>> to break this requirement. Still something like this >>>> >>>> int pvcall_new_socket(struct xen_pvcalls_socket *s) { >>>> struct xen_pvcalls_request req = { >>>> .req_id = REQ_ID, >>>> .cmd = PVCALLS_SOCKET, >>>> .u.socket = *s, >>>> }; >>>> >>>> return pvcall(&req); >>>> } >>>> >>>> may break. >>> >>> I think I understand your concern now. So yes I agree this would break >>> 32-bit consumer. >>> >>> As the padding is at the end of the structure, I think a 32-bit frontend >>> and 64-bit backend (or vice-versa) should currently work without any >>> trouble. The problem would come later if we decide to extend a command. >> >> Can commands be extended at all, i.e. don't extensions require new >> commands? The issue I've described has nothing to do with future >> extending of any of the affected structures. > > I think my point wasn't conveyed correctly. The implicit padding is at > the end of the structure for all the consumers but 32-bit x86. So > without any modification, I think 32-bit frontend can still communicate > with 64-bit backend (or vice-versa). There's no issue communicating afaics, as for communication you wouldn't use the sub-structures, but the single container one. The problem is, as described, with possible uses internal to one side of the communication. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |