On Wed, 2011-10-12 at 17:51 -0700, Jeremy Fitzhardinge wrote: > > This is is all unnecessary complication if you're not using PV ticket > locks, it also uses the jump-label machinery to use the standard > "add"-based unlock in the non-PV case. > > if (TICKET_SLOWPATH_FLAG && > unlikely(static_branch(¶virt_ticketlocks_enabled))) { > arch_spinlock_t prev; > > prev = *lock; > add_smp(&lock->tickets.head, TICKET_LOCK_INC); > > /* add_smp() is a full mb() */ > > if (unlikely(lock->tickets.tail & TICKET_SLOWPATH_FLAG)) > __ticket_unlock_slowpath(lock, prev); > } else > __add(&lock->tickets.head, TICKET_LOCK_INC, UNLOCK_LOCK_PREFIX); Not that I mind the jump_label usage, but didn't paravirt have an existing alternative() thingy to do things like this? Or is the alternative() stuff not flexible enough to express this? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html