From 3bd76b38066acdd78619089544a89eff30f68462 Mon Sep 17 00:00:00 2001 From: Qiao Nuohan Date: Thu, 25 Sep 2014 16:30:57 +0800 Subject: [PATCH v3 16/21] modify kmem -S(SLUB) to hide offline cpus' data if SLUB is configured, kmem -S will display per-cpu data. This patch will hide data of offline cpu. The original output is like below: crash> kmem -S ... CPU 1 KMEM_CACHE_CPU: ffff88003fc97360 CPU 1 SLAB: SLAB MEMORY NODE TOTAL ALLOCATED FREE ffffea0000dc0d40 ffff880037035000 0 16 11 5 FREE / [ALLOCATED] [ffff880037035000] [ffff880037035100] ... [ffff88003c6e0f00] CPU 2 KMEM_CACHE_CPU: ffff88003fd17360 CPU 2 SLAB: (empty) CPU 2 PARTIAL: (empty) CPU 3 KMEM_CACHE_CPU: ffff88003fd97360 CPU 3 SLAB: SLAB MEMORY NODE TOTAL ALLOCATED FREE ffffea0000ed8f80 ffff88003b63e000 0 16 13 3 FREE / [ALLOCATED] [ffff88003b63e000] ... With data of offline cpu(cpu #2) hiden, the output is like below: crash> kmem -S ... CPU 1 KMEM_CACHE_CPU: ffff88003fc97360 CPU 1 SLAB: SLAB MEMORY NODE TOTAL ALLOCATED FREE ffffea0000dc0d40 ffff880037035000 0 16 11 5 FREE / [ALLOCATED] [ffff880037035000] [ffff880037035100] ... [ffff88003c6e0f00] CPU 2 [OFFLINE] CPU 3 KMEM_CACHE_CPU: ffff88003fd97360 CPU 3 SLAB: SLAB MEMORY NODE TOTAL ALLOCATED FREE ffffea0000ed8f80 ffff88003b63e000 0 16 13 3 FREE / [ALLOCATED] [ffff88003b63e000] ... Signed-off-by: Qiao Nuohan --- memory.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/memory.c b/memory.c index 0d9849b..60a789f 100755 --- a/memory.c +++ b/memory.c @@ -17468,6 +17468,11 @@ do_kmem_cache_slub(struct meminfo *si) per_cpu = (ulong *)GETBUF(sizeof(ulong) * vt->numnodes); for (i = 0; i < kt->cpus; i++) { + if (hide_offline_cpu(i)) { + fprintf(fp, "CPU %d [OFFLINE]\n", i); + continue; + } + cpu_slab_ptr = ULONG(si->cache_buf + OFFSET(kmem_cache_cpu_slab)) + kt->__per_cpu_offset[i]; fprintf(fp, "CPU %d KMEM_CACHE_CPU:\n %lx\n", i, cpu_slab_ptr); -- 1.8.5.3