Jan Beulich
2008-Aug-08 12:49 UTC
[Xen-devel] [PATCH] x86: adjust placement of pause insn in _raw_spin_lock()
Signed-off-by: Jan Beulich <jbeulich@novell.com> Index: 2008-08-06/xen/include/asm-x86/spinlock.h ==================================================================--- 2008-08-06.orig/xen/include/asm-x86/spinlock.h 2007-09-10 09:59:37.000000000 +0200 +++ 2008-08-06/xen/include/asm-x86/spinlock.h 2008-08-07 12:36:13.000000000 +0200 @@ -23,8 +23,8 @@ static inline void _raw_spin_lock(spinlo "1: lock; decb %0 \n" " js 2f \n" ".section .text.lock,\"ax\"\n" - "2: cmpb $0,%0 \n" - " rep; nop \n" + "2: rep; nop \n" + " cmpb $0,%0 \n" " jle 2b \n" " jmp 1b \n" ".previous" _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2008-Aug-08 13:12 UTC
Re: [Xen-devel] [PATCH] x86: adjust placement of pause insn in _raw_spin_lock()
Why? -- Keir On 8/8/08 13:49, "Jan Beulich" <jbeulich@novell.com> wrote:> Signed-off-by: Jan Beulich <jbeulich@novell.com> > > Index: 2008-08-06/xen/include/asm-x86/spinlock.h > ==================================================================> --- 2008-08-06.orig/xen/include/asm-x86/spinlock.h 2007-09-10 > 09:59:37.000000000 +0200 > +++ 2008-08-06/xen/include/asm-x86/spinlock.h 2008-08-07 12:36:13.000000000 > +0200 > @@ -23,8 +23,8 @@ static inline void _raw_spin_lock(spinlo > "1: lock; decb %0 \n" > " js 2f \n" > ".section .text.lock,\"ax\"\n" > - "2: cmpb $0,%0 \n" > - " rep; nop \n" > + "2: rep; nop \n" > + " cmpb $0,%0 \n" > " jle 2b \n" > " jmp 1b \n" > ".previous" > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2008-Aug-08 14:02 UTC
Re: [Xen-devel] [PATCH] x86: adjust placement of pause insn in _raw_spin_lock()
Ah, I suppose it reduce lock acquisition latency slightly. I''ll apply it. -- Keir On 8/8/08 14:12, "Keir Fraser" <keir.fraser@eu.citrix.com> wrote:> Why? > > -- Keir > > On 8/8/08 13:49, "Jan Beulich" <jbeulich@novell.com> wrote: > >> Signed-off-by: Jan Beulich <jbeulich@novell.com> >> >> Index: 2008-08-06/xen/include/asm-x86/spinlock.h >> ==================================================================>> --- 2008-08-06.orig/xen/include/asm-x86/spinlock.h 2007-09-10 >> 09:59:37.000000000 +0200 >> +++ 2008-08-06/xen/include/asm-x86/spinlock.h 2008-08-07 12:36:13.000000000 >> +0200 >> @@ -23,8 +23,8 @@ static inline void _raw_spin_lock(spinlo >> "1: lock; decb %0 \n" >> " js 2f \n" >> ".section .text.lock,\"ax\"\n" >> - "2: cmpb $0,%0 \n" >> - " rep; nop \n" >> + "2: rep; nop \n" >> + " cmpb $0,%0 \n" >> " jle 2b \n" >> " jmp 1b \n" >> ".previous" >> >> >> >> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@lists.xensource.com >> http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jan Beulich
2008-Aug-08 14:12 UTC
Re: [Xen-devel] [PATCH] x86: adjust placement of pause insn in_raw_spin_lock()
That''s the way it''s done elsewhere and it''s recommended (i.e. pause immediately preceding the memory reference of the possibly contended location). Jan>>> Keir Fraser <keir.fraser@eu.citrix.com> 08.08.08 15:12 >>>Why? -- Keir On 8/8/08 13:49, "Jan Beulich" <jbeulich@novell.com> wrote:> Signed-off-by: Jan Beulich <jbeulich@novell.com> > > Index: 2008-08-06/xen/include/asm-x86/spinlock.h > ==================================================================> --- 2008-08-06.orig/xen/include/asm-x86/spinlock.h 2007-09-10 > 09:59:37.000000000 +0200 > +++ 2008-08-06/xen/include/asm-x86/spinlock.h 2008-08-07 12:36:13.000000000 > +0200 > @@ -23,8 +23,8 @@ static inline void _raw_spin_lock(spinlo > "1: lock; decb %0 \n" > " js 2f \n" > ".section .text.lock,\"ax\"\n" > - "2: cmpb $0,%0 \n" > - " rep; nop \n" > + "2: rep; nop \n" > + " cmpb $0,%0 \n" > " jle 2b \n" > " jmp 1b \n" > ".previous" > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel