Subject: Re: [RFC PATCH 1/9] ipvs network name space aware

From: "Paul E. McKenney" <[email-masked]>
Date: Thu, 21 Oct 2010 08:18:06 -0700

On Thu, Oct 21, 2010 at 10:01:12AM +0200, Eric Dumazet wrote:
> Le jeudi 21 octobre 2010 à 09:45 +0200, Hans Schillstrom a écrit :
> > I do have this (and some debuging)
> > __rcu_read_lock()
> > => 0xffffffff8108bcf3 <+0>:	push   %rbp
> >    0xffffffff8108bcf4 <+1>:	mov    %rsp,%rbp
> >    0xffffffff8108bcf7 <+4>:	nopl   0x0(%rax,%rax,1)
> >    0xffffffff8108bcfc <+9>:	mov    %gs:0xb540,%rax
> >    0xffffffff8108bd05 <+18>:	mov    0x108(%rax),%edx
> >    0xffffffff8108bd0b <+24>:	inc    %edx
> >    0xffffffff8108bd0d <+26>:	mov    %edx,0x108(%rax)
> >    0xffffffff8108bd13 <+32>:	leaveq
> >    0xffffffff8108bd14 <+33>:	retq
> > 
> > which is not that many, actually imprerssing few instructions :-)
> 
> nopl   0x0(%rax,%rax,1) is a filler because of extra instrumentation in
> your kernel.
> 
> Maybe you could find out why your compiler dont use
> 
> 	incl 0x108(%rax)
> 
> instead of
> 
> 	mov    0x108(%rax),%edx
> 	inc    %edx
> 	mov    %edx,0x108(%rax)
> 
> 
> So rcu_read_lock() is really _two_ instructions.
> 
> I agree with Paul with the "few" qualification... :-)

Thank you!  ;-)

And the reason for the three-instruction shuffle is that Hans's kernel
does not yet contain commit 80dcf60e.  That commit is on its way upstream,
and will hopefully make the current merge window.

							Thanx, Paul