<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/arch/x86/include/asm/rwsem.h, branch dev</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2013-05-07T14:20:17+00:00</updated>
<entry>
<title>x86 rwsem: avoid taking slow path when stealing write lock</title>
<updated>2013-05-07T14:20:17+00:00</updated>
<author>
<name>Michel Lespinasse</name>
<email>walken@google.com</email>
</author>
<published>2013-05-07T13:46:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=a31a369b07cf306ae1de0b2d4a52c3821a570bf6'/>
<id>urn:sha1:a31a369b07cf306ae1de0b2d4a52c3821a570bf6</id>
<content type='text'>
modify __down_write[_nested] and __down_write_trylock to grab the write
lock whenever the active count is 0, even if there are queued waiters
(they must be writers pending wakeup, since the active count is 0).

Note that this is an optimization only; architectures without this
optimization will still work fine:

- __down_write() would take the slow path which would take the wait_lock
  and then try stealing the lock (as in the spinlocked rwsem implementation)

- __down_write_trylock() would fail, but callers must be ready to deal
  with that - since there are some writers pending wakeup, they could
  have raced with us and obtained the lock before we steal it.

Signed-off-by: Michel Lespinasse &lt;walken@google.com&gt;
Reviewed-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Acked-by: Davidlohr Bueso &lt;davidlohr.bueso@hp.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>x86: Use xadd helper more widely</title>
<updated>2011-08-29T20:44:12+00:00</updated>
<author>
<name>Jeremy Fitzhardinge</name>
<email>jeremy.fitzhardinge@citrix.com</email>
</author>
<published>2011-08-23T23:59:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=8b8bc2f7311c3223213dbe346d9cc2e299fdb5eb'/>
<id>urn:sha1:8b8bc2f7311c3223213dbe346d9cc2e299fdb5eb</id>
<content type='text'>
This covers the trivial cases from open-coded xadd to the xadd macros.

Signed-off-by: Jeremy Fitzhardinge &lt;jeremy.fitzhardinge@citrix.com&gt;
Link: http://lkml.kernel.org/r/4E5BCC40.3030501@goop.org
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>rwsem: Move duplicate function prototypes to linux/rwsem.h</title>
<updated>2011-01-27T11:30:39+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-01-26T20:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=aac72277fda6ef788bb8d5deaa502ce9b9b6e472'/>
<id>urn:sha1:aac72277fda6ef788bb8d5deaa502ce9b9b6e472</id>
<content type='text'>
All architecture specific rwsem headers carry the same function
prototypes. Just x86 adds asmregparm, which is an empty define on all
other architectures. S390 has a stale rwsem_downgrade_write()
prototype.

Remove the duplicates and add the prototypes to linux/rwsem.h

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Richard Henderson &lt;rth@twiddle.net&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Acked-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Acked-by: David Miller &lt;davem@davemloft.net&gt;
Cc: Chris Zankel &lt;chris@zankel.net&gt;
LKML-Reference: &lt;20110126195833.970840140@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>rwsem: Unify the duplicate rwsem_is_locked() inlines</title>
<updated>2011-01-27T11:30:39+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-01-26T20:06:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=41e5887fa39ab272d9266a09cbefdef270e28b93'/>
<id>urn:sha1:41e5887fa39ab272d9266a09cbefdef270e28b93</id>
<content type='text'>
Instead of having the same implementation in each architecture, move
it to linux/rwsem.h and remove the duplicates. It's unlikely that an
arch will ever implement something different, but we can deal with
that when it happens.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Matt Turner &lt;mattst88@gmail.com&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Acked-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Acked-by: David Miller &lt;davem@davemloft.net&gt;
Cc: Chris Zankel &lt;chris@zankel.net&gt;
LKML-Reference: &lt;20110126195833.876773757@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>rwsem: Move duplicate init macros and functions to linux/rwsem.h</title>
<updated>2011-01-27T11:30:39+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-01-26T20:06:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=12249b34414dba7f386aadcf6be7ca36c6878300'/>
<id>urn:sha1:12249b34414dba7f386aadcf6be7ca36c6878300</id>
<content type='text'>
The rwsem initializers and related macros and functions are mostly the
same. Some of them lack the lockdep initializer, but having it in
place does not matter for architectures which do not support lockdep.

powerpc, sparc, x86: No functional change

sh, s390: Removes the duplicate init_rwsem (inline and #define)

alpha, ia64, xtensa: Use the lockdep capable init function in
       	     	     lib/rwsem.c which is just uninlining the init
       	     	     function for the LOCKDEP=n case

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Matt Turner &lt;mattst88@gmail.com&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Acked-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Acked-by: David Miller &lt;davem@davemloft.net&gt;
Cc: Chris Zankel &lt;chris@zankel.net&gt;
LKML-Reference: &lt;20110126195833.771812729@linutronix.de&gt;

</content>
</entry>
<entry>
<title>rwsem: Move duplicate struct rwsem declaration to linux/rwsem.h</title>
<updated>2011-01-27T11:30:39+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-01-26T20:05:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=1c8ed640d918290ddc1de5ada02ef6686a733c9f'/>
<id>urn:sha1:1c8ed640d918290ddc1de5ada02ef6686a733c9f</id>
<content type='text'>
The difference between these declarations is the data type of the
count member and the lack of lockdep in some architectures/

long is equivivalent to signed long and the #ifdef guarded dep_map
member does not hurt anyone.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Matt Turner &lt;mattst88@gmail.com&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Acked-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Acked-by: David Miller &lt;davem@davemloft.net&gt;
Cc: Chris Zankel &lt;chris@zankel.net&gt;
LKML-Reference: &lt;20110126195833.679641914@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>x86: Cleanup rwsem_count_t typedef</title>
<updated>2011-01-27T11:30:38+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-01-26T20:05:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=bde11efbc21ea84c3351464a422b467eaefabb9a'/>
<id>urn:sha1:bde11efbc21ea84c3351464a422b467eaefabb9a</id>
<content type='text'>
Remove the typedef which has no real reason to be there.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Matt Turner &lt;mattst88@gmail.com&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Cc: Chris Zankel &lt;chris@zankel.net&gt;
LKML-Reference: &lt;20110126195833.580335506@linutronix.de&gt;

</content>
</entry>
<entry>
<title>rwsem: Cleanup includes</title>
<updated>2011-01-27T11:30:38+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-01-26T20:05:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=c16a87ce063f79e0ec7d25ce2950e1bc6db03c72'/>
<id>urn:sha1:c16a87ce063f79e0ec7d25ce2950e1bc6db03c72</id>
<content type='text'>
All rwsem implementations include the same headers. Include them from
include/linux/rwsem.h

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Matt Turner &lt;mattst88@gmail.com&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Acked-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Acked-by: David Miller &lt;davem@davemloft.net&gt;
Cc: Chris Zankel &lt;chris@zankel.net&gt;
LKML-Reference: &lt;20110126195833.483520950@linutronix.de&gt;

</content>
</entry>
<entry>
<title>x86, rwsem: Minor cleanups</title>
<updated>2010-07-21T00:41:14+00:00</updated>
<author>
<name>Michel Lespinasse</name>
<email>walken@google.com</email>
</author>
<published>2010-07-20T22:19:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=b4bcb4c28c64cc2876b4aef218d992ce806194da'/>
<id>urn:sha1:b4bcb4c28c64cc2876b4aef218d992ce806194da</id>
<content type='text'>
Clarified few comments and made initialization of %edx/%rdx more uniform
accross __down_write_nested, __up_read and __up_write functions.

Signed-off-by: Michel Lespinasse &lt;walken@google.com&gt;
LKML-Reference: &lt;201007202219.o6KMJkiA021048@imap1.linux-foundation.org&gt;
Acked-by: David Howells &lt;dhowells@redhat.com&gt;
Cc: Mike Waychison &lt;mikew@google.com&gt;
Cc: Suleiman Souhlal &lt;suleiman@google.com&gt;
Cc: Ying Han &lt;yinghan@google.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>x86, rwsem: Stay on fast path when count &gt; 0 in __up_write()</title>
<updated>2010-07-21T00:41:00+00:00</updated>
<author>
<name>Michel Lespinasse</name>
<email>walken@google.com</email>
</author>
<published>2010-07-20T22:19:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=a751bd858b16dce57f3b6b85ba07946df1bd7be4'/>
<id>urn:sha1:a751bd858b16dce57f3b6b85ba07946df1bd7be4</id>
<content type='text'>
When count &gt; 0 there is no need to take the call_rwsem_wake path.  If
we did take that path, it would just return without doing anything due
to the active count not being zero.

Signed-off-by: Michel Lespinasse &lt;walken@google.com&gt;
LKML-Reference: &lt;201007202219.o6KMJj9x021042@imap1.linux-foundation.org&gt;
Acked-by: David Howells &lt;dhowells@redhat.com&gt;
Cc: Mike Waychison &lt;mikew@google.com&gt;
Cc: Suleiman Souhlal &lt;suleiman@google.com&gt;
Cc: Ying Han &lt;yinghan@google.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
</feed>
