xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv2 0/4] spinlock: queue read-write locks
@ 2016-01-26 16:25 David Vrabel
  2016-01-26 16:25 ` [PATCHv2 1/4] atomic: replace atomic_compareandswap() with atomic_cmpxchg() David Vrabel
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: David Vrabel @ 2016-01-26 16:25 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Jennifer Herbert, David Vrabel, Jan Beulich,
	Ian Campbell

This series replaces the current read-write lock implementation with
the queue read-write locks from Linux.  These are fair; under
contention both readers and writers will be queued and obtain the lock
in FIFO order (due to the fairness of the internal ticket lock).

The implementation is all in C and thus architecture independent.

Compared to the Linux implementation some of the memory barrier
primitives were changed.  The ARM maintainers may want to give this
area a careful review.

Significant changes in v2:

- atomic_cmpxchg() is now arch-dependent as arm/arm64 already provided
  their own.
- Moved rwlocks into their own file.
- Removed the special casing of in_irq() in the slow read path.

David

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-01-26 17:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-26 16:25 [PATCHv2 0/4] spinlock: queue read-write locks David Vrabel
2016-01-26 16:25 ` [PATCHv2 1/4] atomic: replace atomic_compareandswap() with atomic_cmpxchg() David Vrabel
2016-01-26 17:09   ` Ian Campbell
2016-01-26 16:25 ` [PATCHv2 2/4] spinlock: shrink struct lock_debug David Vrabel
2016-01-26 16:25 ` [PATCHv2 3/4] spinlock: move rwlock API and per-cpu rwlocks into their own files David Vrabel
2016-01-26 16:25 ` [PATCHv2 4/4] spinlock: fair read-write locks David Vrabel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).