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:
<cut>
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]
...
<cut>

With data of offline cpu(cpu #2) hiden, the output is like below:
<cut>
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]
...
<cut>

Signed-off-by: Qiao Nuohan <[email protected]>
---
 memory.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/memory.c b/memory.c
index 6b7289b..10fa273 100755
--- a/memory.c
+++ b/memory.c
@@ -17466,6 +17466,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

--
Crash-utility mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/crash-utility

Reply via email to