Re: [PATCH] netns: deinline net_generic()

From: Denys Vlasenko
Date: Tue Apr 14 2015 - 11:04:59 EST


On 04/14/2015 04:21 PM, Eric Dumazet wrote:
> On Tue, 2015-04-14 at 15:57 +0200, Denys Vlasenko wrote:
>
>> My allyesconfig, with BUG_ON's commented out:
>>
>
> Right. But I can tell you nobody uses lockdep on a production kernel.
>
> Here, at Google, we get what I described.

I'm trying to get to the .config which generates a small function.

So far, with LOCKDEP off, it is still this big:


net_generic:
call __fentry__
pushq %rbp #
#APP
# 72 "./arch/x86/include/asm/preempt.h" 1
incl %gs:__preempt_count(%rip) # __preempt_count
# 0 "" 2
#NO_APP
movq %rsp, %rbp #,
pushq %r12 #
movq %rdi, %r12 # net, net
pushq %rbx #
movl %esi, %ebx # id, id
call rcu_lock_acquire.constprop.15 #
movq 4784(%r12), %rax # MEM[(struct net_generic * const volatile *)net_2(D) + 4784B], _________p1
decl %ebx # tmp65
movslq %ebx, %rbx # tmp65, tmp66
movq 24(%rax,%rbx,8), %rbx # _________p1_4->ptr, ptr
call rcu_read_unlock #
movq %rbx, %rax # ptr,
popq %rbx #
popq %r12 #
popq %rbp #
ret


Config is attached.

Attachment: config.gz
Description: application/gzip