• Pavel Emelyanov's avatar
    [SOCK]: Introduce a percpu inuse counters array (v2). · 1338d466
    Pavel Emelyanov authored
    And redirect sock_prot_inuse_add and _get to use one.
    
    As far as the dereferences are concerned. Before the patch we made
    1 dereference to proto->inuse.add call, the call itself and then
    called the __get_cpu_var() on a static variable. After the patch we 
    make a direct call, then one dereference to proto->inuse_idx and 
    then the same __get_cpu_var() on a still static variable. So this 
    patch doesn't seem to produce performance penalty on SMP.
    
    This is not per-net yet, but I will deliberately make NET_NS=y case
    separated from NET_NS=n one, since it'll cost us one-or-two more 
    dereferences to get the struct net and the inuse counter.
    Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
    Acked-by: default avatarEric Dumazet <dada1@cosmosbay.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1338d466
sock.c 55.4 KB