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