szgy.org  
[Sep] 1 lkml.org From [last100] 25 22 15 [forward] 1 RSS Feed
[2008] September 2008 11 ©2003-2008   [lkml]   Subject 17
Web
Enter your search terms
Patch in this message
/
  Fri, 05 Sep 2008 13:27:45 +0100
13 "Jan Beulich" <>
[headers] Last update: 2008-09-05 14:29    [W:0.576 / U:0.500 seconds]
 other case.  Signed-off-by: Jan Beulich <jbeulich@novell.com> Cc: Nick Piggin <npiggin@suse.de>  ---  include/asm-x86/spinlock.h |   14 +++++++-------  the amount of partial register accesses in the file changed, 7 insertions(+), 7 deletions(-) --- linux-x86.orig/include/asm-x86/spinlock.h +++ linux-x86/include/asm-x86/spinlock.h @@ -21,8 +21,10 @@    #ifdef CONFIG_X86_32  # define LOCK_PTR_REG "a" +# define REG_PTR_MODE "k"  #else  # define LOCK_PTR_REG "D" +# define REG_PTR_MODE "q"  #endif    #if defined(CONFIG_X86_32) && \ @@ -77,19 +79,17 @@ static __always_inline void __ticket_spi    static __always_inline int __ticket_spin_trylock(raw_spinlock_t *lock)  { -int tmp; -short new; +int tmp, new;   -asm volatile("movw %2,%w0\n\t" +asm volatile("movzwl %2, %0\n\t"       "cmpb %h0,%b0\n\t" +     "leal 0x100(%" REG_PTR_MODE "0), %1\n\t"       "jne 1f\n\t" -     "movw %w0,%w1\n\t" -     "incb %h1\n\t"       LOCK_PREFIX "cmpxchgw %w1,%2\n\t"       "1:"       "sete %b1\n\t"       "movzbl %b1,%0\n\t" -     : "=&a" (tmp), "=&q" (new), "+m" (lock->slock)       : "memory", "cc");   @@ -136,8 +136,8 @@ static __always_inline int __ticket_spin       "movl %0,%1\n\t"       "roll $16, %0\n\t"       "cmpl %0,%1\n\t" +     "leal 0x00010000(%" REG_PTR_MODE "0), %1\n\t"       "jne 1f\n\t" -     "addl $0x00010000, %1\n\t"       LOCK_PREFIX "cmpxchgl %1,%2\n\t"       "1:"       "sete %b1\n\t" : "=&a" (tmp), "=&Q" (new), "+m" (lock->slock) +     :       1 Reduce the NR_CPUS < 256 case, and slightly weaken resource dependencies in 
\
 
23 \ 14 /
3 [PATCH 3/3] x86: ticket spin locks: reduce instruction dependencies
Jasper Spaans [less markup]
8
type="text/javascript" src="http://szgy.org/quant.js"/ type="text/javascript" src="http://szgy.org/quant.js"/>