[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCHv6 1/3] xen: use ticket locks for spin locks
At 12:21 +0100 on 14 May (1431606100), David Vrabel wrote: > Replace the byte locks with ticket locks. Ticket locks are: a) fair; > and b) peform better when contented since they spin without an atomic > operation. > > The lock is split into two ticket values: head and tail. A locker > acquires a ticket by (atomically) increasing tail and using the > previous tail value. A CPU holds the lock if its ticket == head. The > lock is released by increasing head. > > spin_lock_irq() and spin_lock_irqsave() now spin with irqs disabled > (previously, they would spin with irqs enabled if possible). This is > required to prevent deadlocks when the irq handler tries to take the > same lock with a higher ticket. > > Architectures need only provide arch_fetch_and_add() and two barriers: > arch_lock_acquire_barrier() and arch_lock_release_barrier(). > > Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx> Reviewed-by: Tim Deegan <tim@xxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |