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
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|