• Eric Dumazet's avatar
    crypto: lzo - try kmalloc() before vmalloc() · 42614b05
    Eric Dumazet authored
    zswap allocates one LZO context per online cpu.
    
    Using vmalloc() for small (16KB) memory areas has drawback of slowing
    down /proc/vmallocinfo and /proc/meminfo reads, TLB pressure and poor
    NUMA locality, as default NUMA policy at boot time is to interleave
    pages :
    
    edumazet:~# grep lzo /proc/vmallocinfo | head -4
    0xffffc90006062000-0xffffc90006067000   20480 lzo_init+0x1b/0x30 pages=4 vmalloc N0=2 N1=2
    0xffffc90006067000-0xffffc9000606c000   20480 lzo_init+0x1b/0x30 pages=4 vmalloc N0=2 N1=2
    0xffffc9000606c000-0xffffc90006071000   20480 lzo_init+0x1b/0x30 pages=4 vmalloc N0=2 N1=2
    0xffffc90006071000-0xffffc90006076000   20480 lzo_init+0x1b/0x30 pages=4 vmalloc N0=2 N1=2
    
    This patch tries a regular kmalloc() and fallback to vmalloc in case
    memory is too fragmented.
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    42614b05
lzo.c 2.64 KB