[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [PATCH 03/20] x86/ticketlock: Use C for __ticket_spin_unlock
On 11/13/2010 11:05 AM, Américo Wang wrote: On Wed, Nov 03, 2010 at 10:59:44AM -0400, Jeremy Fitzhardinge wrote:* On PPro SMP or if we are using OOSTORE, we use a locked operation to unlock * (PPro errata 66, 92) */ -# define UNLOCK_LOCK_PREFIX LOCK_PREFIX +static __always_inline void __ticket_unlock_release(struct arch_spinlock *lock) +{ + if (sizeof(lock->tickets.head) == sizeof(u8)) + asm (LOCK_PREFIX "incb %0" + : "+m" (lock->tickets.head) : : "memory"); + else + asm (LOCK_PREFIX "incw %0" + : "+m" (lock->tickets.head) : : "memory");This 'if/else' really should be done with #ifdef, even though the compiler may be smart enough to remove it. That's a sure path to bitrot. Paolo _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |