• Li Zefan's avatar
    slub: Fix calculation of cpu slabs · 8afb1474
    Li Zefan authored
      /sys/kernel/slab/:t-0000048 # cat cpu_slabs
      231 N0=16 N1=215
      /sys/kernel/slab/:t-0000048 # cat slabs
      145 N0=36 N1=109
    
    See, the number of slabs is smaller than that of cpu slabs.
    
    The bug was introduced by commit 49e22585
    ("slub: per cpu cache for partial pages").
    
    We should use page->pages instead of page->pobjects when calculating
    the number of cpu partial slabs. This also fixes the mapping of slabs
    and nodes.
    
    As there's no variable storing the number of total/active objects in
    cpu partial slabs, and we don't have user interfaces requiring those
    statistics, I just add WARN_ON for those cases.
    
    Cc: <stable@vger.kernel.org> # 3.2+
    Acked-by: default avatarChristoph Lameter <cl@linux.com>
    Reviewed-by: default avatarWanpeng Li <liwanp@linux.vnet.ibm.com>
    Signed-off-by: default avatarLi Zefan <lizefan@huawei.com>
    Signed-off-by: default avatarPekka Enberg <penberg@kernel.org>
    8afb1474
slub.c 126 KB