| 
    
 [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 1/2] x86: simplify nonâatomic bitops
 On 20/03/15 14:53, Jan Beulich wrote: - being non-atomic, their pointer arguments shouldn't be volatile- qualified - their (half fake) memory operands can be a single "+m" instead of being both an output and an input Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> After further consideration, would it not be better to change the non-atomic variants to being straight C. 
e.g.
static inline void __set_bit(int nr, void *_addr)
{
    int *addr = _addr;
    addr[nr / sizeof(int)] |= (1U << (nr % sizeof(int)));
}
This would drop the memory clobber from the asm statement and allow the 
compiler to optimise repeated __set_bit() calls to the same word into a 
single action.
~Andrew(On a separate note, I feel that all of these operations should be acting on unsigned rather than signed ints, but that applies to all of these operations, not just the non-atomic ones) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel 
 
 
  | 
  
![]()  | 
            
         Lists.xenproject.org is hosted with RackSpace, monitoring our  |