summaryrefslogtreecommitdiffstats
path: root/security/lsm_audit.c
diff options
context:
space:
mode:
authorGreg Thelen <gthelen@google.com>2016-12-13 01:41:41 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-13 03:55:06 +0100
commitf728b0a5d72ae99c446f933912914a61254c03b6 (patch)
treee35973494392c657faece3a8191adb5816e86d7f /security/lsm_audit.c
parentmm/slab_common.c: check kmem_create_cache flags are common (diff)
downloadlinux-f728b0a5d72ae99c446f933912914a61254c03b6.tar.xz
linux-f728b0a5d72ae99c446f933912914a61254c03b6.zip
mm, slab: faster active and free stats
Reading /proc/slabinfo or monitoring slabtop(1) can become very expensive if there are many slab caches and if there are very lengthy per-node partial and/or free lists. Commit 07a63c41fa1f ("mm/slab: improve performance of gathering slabinfo stats") addressed the per-node full lists which showed a significant improvement when no objects were freed. This patch has the same motivation and optimizes the remainder of the usecases where there are very lengthy partial and free lists. This patch maintains per-node active_slabs (full and partial) and free_slabs rather than iterating the lists at runtime when reading /proc/slabinfo. When allocating 100GB of slab from a test cache where every slab page is on the partial list, reading /proc/slabinfo (includes all other slab caches on the system) takes ~247ms on average with 48 samples. As a result of this patch, the same read takes ~0.856ms on average. [rientjes@google.com: changelog] Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1611081505240.13403@chino.kir.corp.google.com Signed-off-by: Greg Thelen <gthelen@google.com> Signed-off-by: David Rientjes <rientjes@google.com> Cc: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'security/lsm_audit.c')
0 files changed, 0 insertions, 0 deletions