2017-04-07 09:27+0100, Marc Zyngier: > On 06/04/17 21:20, Radim Krčmář wrote: >> Some operations must ensure that the guest is not running with stale >> data, but if the guest is halted, then the update can wait until another >> event happens. kvm_make_all_requests() currently doesn't wake up, so we >> can mark all requests used with it. >> >> First 8 bits were arbitrarily reserved for request numbers. >> >> Most uses of requests have the request type as a constant, so a compiler >> will optimize the '&'. >> >> An alternative would be to have an inline function that would return >> whether the request needs a wake-up or not, but I like this one better >> even though it might produce worse assembly. >> >> Suggested-by: Christoffer Dall <cdall@xxxxxxxxxx> >> Signed-off-by: Radim Krčmář <rkrcmar@xxxxxxxxxx> >> --- >> Btw. do you recall which macro allowed to define bitmasks? (It has >> two arguments, FROM and TO.) > > GENMASK (and its _ULL variant), defined in include/linux/bitops.h. Thank you, it is under BIT() ... I am blind. > +#define KVM_REQUEST_MASK 0xff The 0xff should be "GENMASK(7,0)". First 8 bits is plenty and should be fast even if the compiler doesn't optimize the masking because request is not constant.