Jan Beulich wrote: >>>> On 25.03.14 at 18:23, wrote: >> > Event channel arrays are allocated in blocks with EVTCHNS_PER_BUCKET >> > elements, which must be a power of 2. When XSM is disabled, struct >> > evtchn is 32 bytes including padding; however, when XSM is enabled, the >> > structure becomes larger and EVTCHNS_PER_BUCKET is halved. Rearranging >> > some of the fields in struct evtchn allows a 4-byte XSM field to fit >> > within the 32-byte structure. >> > >> > This rearrangement turns the xen_consumer field of struct evtchn into a >> > bitfield and adjusts the xen_consumers array to fit the number of >> > addressable elements from this value. Since there are currently only >> > two users of this array, only 3 bits (7 values) are reserved. This >> > field is also used rarely enough that the slight overhead from applying >> > a bitmask should not cause problems. >> > >> > Signed-off-by: Daniel De Graaf >> > Cc: David Vrabel > > Reviewed-by: Jan Beulich Acked-by: Keir Fraser >