• Eric Dumazet's avatar
    [LIB] pcounter : unline too big functions · 571e7682
    Eric Dumazet authored
    Before pushing pcounter to Linus tree, I would like to make some adjustments.
    
    Goal is to reduce kernel text size, by unlining too big functions.
    
    When a pcounter is bound to a statically defined per_cpu variable,
    we define two small helpers functions. (No more folding function
    using the fat for_each_possible_cpu(cpu) ... )
    
    static DEFINE_PER_CPU(int, NAME##_pcounter_values);
    static void NAME##_pcounter_add(struct pcounter *self, int val)
    {
           __get_cpu_var(NAME##_pcounter_values) += val;
    }
    static int NAME##_pcounter_getval(const struct pcounter *self, int cpu)
    {
           return per_cpu(NAME##_pcounter_values, cpu);
    }
    
    Fast path is therefore unchanged, while folding/alloc/free is now unlined.
    
    This saves 228 bytes on i386
    Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    571e7682
pcounter.c 1.24 KB