All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] x86: Ticket lock cleanup
@ 2011-08-22 23:14 Jeremy Fitzhardinge
       [not found] ` <cover.1314054734.git.jeremy.fitzhardinge@citrix.com>
  0 siblings, 1 reply; 40+ messages in thread
From: Jeremy Fitzhardinge @ 2011-08-22 23:14 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Linus Torvalds, Peter Zijlstra, Ingo Molnar,
	the arch/x86 maintainers, Linux Kernel Mailing List, Nick Piggin,
	Jeremy Fitzhardinge

From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>


Hi all,

This is a repost of the ticketlock cleanup I posted for the last mergewindow.

The main differences are:
 - put "asm volatiles" into the locked unlock path
 - tidy up xadd helper to put it into a common place
 - clean up the rest of cmpxchg.h to remove most of the 32/64 duplication

The main downside of the 32/64 cmpxchg/xadd duplication is that passing a 64-bit param
to cmpxchg/xadd on a 32-bit system will generate a bad instruction rather than a link
error, but I don't think that's a huge issue.

As a bonus, I added some cmpxchg_flag() variants, which return a bool rather than
the old value, which saves the caller from having to do it (since cmpxchg itself
sets the flags).  This is useful since many callers of cmpxchg() only care whether
it worked without actually getting the old value.

Thanks,
	J

Jeremy Fitzhardinge (12):
  x86/ticketlock: clean up types and accessors
  x86/ticketlock: convert spin loop to C
  x86/ticketlock: Use C for __ticket_spin_unlock
  x86/ticketlock: make large and small ticket versions of spin_lock the
    same
  x86/ticketlock: make __ticket_spin_lock common
  x86/ticketlock: make __ticket_spin_trylock common
  x86: add xadd helper macro
  x86/ticketlock: use xadd helper
  x86/cmpxchg: linux/alternative.h has LOCK_PREFIX
  x86/cmpxchg: move 32-bit __cmpxchg_wrong_size to match 64 bit.
  x86/cmpxchg: move 64-bit set64_bit() to match 32-bit
  x86/cmpxchg: unify cmpxchg into cmpxchg.h

 arch/x86/include/asm/cmpxchg.h        |  165 +++++++++++++++++++++++++++++++++
 arch/x86/include/asm/cmpxchg_32.h     |  114 -----------------------
 arch/x86/include/asm/cmpxchg_64.h     |  131 --------------------------
 arch/x86/include/asm/spinlock.h       |  140 +++++++++------------------
 arch/x86/include/asm/spinlock_types.h |   22 ++++-
 5 files changed, 232 insertions(+), 340 deletions(-)

-- 
1.7.6


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

end of thread, other threads:[~2011-08-25 14:07 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-22 23:14 [PATCH 00/12] x86: Ticket lock cleanup Jeremy Fitzhardinge
     [not found] ` <cover.1314054734.git.jeremy.fitzhardinge@citrix.com>
2011-08-22 23:14   ` [PATCH 01/15] x86/ticketlock: clean up types and accessors Jeremy Fitzhardinge
2011-08-22 23:14   ` [PATCH 02/15] x86/ticketlock: convert spin loop to C Jeremy Fitzhardinge
2011-08-22 23:14   ` [PATCH 03/15] x86/ticketlock: Use C for __ticket_spin_unlock Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 04/15] x86/ticketlock: make large and small ticket versions of spin_lock the same Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 05/15] x86/ticketlock: make __ticket_spin_lock common Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 06/15] x86/ticketlock: make __ticket_spin_trylock common Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 07/15] x86: add xadd helper macro Jeremy Fitzhardinge
2011-08-22 23:29     ` H. Peter Anvin
2011-08-22 23:43       ` Jeremy Fitzhardinge
2011-08-23  4:41         ` H. Peter Anvin
2011-08-23 10:59     ` Peter Zijlstra
2011-08-23 16:34       ` Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 08/15] x86/ticketlock: use xadd helper Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 09/15] x86/cmpxchg: linux/alternative.h has LOCK_PREFIX Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 10/15] x86/cmpxchg: move 32-bit __cmpxchg_wrong_size to match 64 bit Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 11/15] x86/cmpxchg: move 64-bit set64_bit() to match 32-bit Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 12/15] x86/cmpxchg: unify cmpxchg into cmpxchg.h Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 13/15] x86: add cmpxchg_flag() variant Jeremy Fitzhardinge
2011-08-23 19:01     ` Christoph Lameter
2011-08-23 19:22       ` H. Peter Anvin
2011-08-23 19:52         ` Christoph Lameter
2011-08-23 21:03           ` H. Peter Anvin
2011-08-23 19:53       ` Jeremy Fitzhardinge
2011-08-23 20:45         ` H. Peter Anvin
2011-08-23 22:15           ` Jeremy Fitzhardinge
2011-08-23 22:43             ` H. Peter Anvin
2011-08-24 13:54               ` Christoph Lameter
2011-08-24 13:53             ` Christoph Lameter
2011-08-24 16:33               ` Jeremy Fitzhardinge
2011-08-24 19:27                 ` Christoph Lameter
2011-08-24 20:15                   ` Jeremy Fitzhardinge
2011-08-24 20:31                   ` H. Peter Anvin
2011-08-24 20:38                     ` Jeremy Fitzhardinge
2011-08-24 23:04                       ` H. Peter Anvin
2011-08-24 23:11                         ` Linus Torvalds
2011-08-24 23:19                           ` Jeremy Fitzhardinge
2011-08-25 14:07                             ` Christoph Lameter
2011-08-22 23:15   ` [PATCH 14/15] x86/ticketlocks: use cmpxchg_flag for trylock Jeremy Fitzhardinge
2011-08-22 23:15   ` [PATCH 15/15] x86: use cmpxchg_flag() where applicable Jeremy Fitzhardinge

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.