[Crash-utility] [PATCH 2/2] Move NAME column in "kmem -s" output to the last of line

Kazuhito Hagio k-hagio at ab.jp.nec.com
Mon Jul 30 16:28:42 UTC 2018


For readability, move NAME column in "kmem -s" output to the last of line.
---
 help.c   | 136 +++++++++++++++++++++++++++++++--------------------------------
 memory.c |  44 +++++----------------
 2 files changed, 78 insertions(+), 102 deletions(-)

diff --git a/help.c b/help.c
index 83cda7c..a189038 100644
--- a/help.c
+++ b/help.c
@@ -6692,8 +6692,8 @@ char *help_kmem[] = {
 "  Find all of the combined slab/page structures that are used by",
 "  the kmalloc-8192 slab cache:\n",
 "    %s> kmem -s kmalloc-8192",
-"    CACHE            NAME             OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE",
-"    ffff880215802e00 kmalloc-8192        8192         65        80     20    32k",
+"    CACHE             OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME",
+"    ffff880215802e00     8192         65        80     20    32k  kmalloc-8192",
 "    %s> kmem -m slab_cache | grep ffff880215802e00",
 "    ffffea0004117800  ffff880215802e00  ",
 "    ffffea00041ca600  ffff880215802e00  ",
@@ -6889,72 +6889,72 @@ char *help_kmem[] = {
 " ",
 "  Display kmalloc() slab data:\n",
 "    %s> kmem -s",
-"    CACHE     NAME                OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE",
-"    c02eadc0 kmem_cache               232         58        68      4     4k",
-"    f79c2888 ip_vs_conn               128          0         0      0     4k",
-"    f79c2970 tcp_tw_bucket             96          0         0      0     4k",
-"    f79c2a58 tcp_bind_bucket           32         12       565      5     4k",
-"    f79c2b40 tcp_open_request          64          0        59      1     4k",
-"    f79c2c28 inet_peer_cache           64          1        59      1     4k",
-"    f79c2d10 ip_fib_hash               32         11       339      3     4k",
-"    f79c2df8 ip_dst_cache             160          8       120      5     4k",
-"    f79c2ee0 arp_cache                128          1        30      1     4k",
-"    c8402970 blkdev_requests           96      30208     37800    945     4k",
-"    c8402a58 nfs_read_data            384          0         0      0     4k",
-"    c8402b40 nfs_write_data           384          0         0      0     4k",
-"    c8402c28 nfs_page                  96          0         0      0     4k",
-"    c8402d10 dnotify cache             20          0         0      0     4k",
-"    c8402df8 file lock cache           92          3       336      8     4k",
-"    c8402ee0 fasync cache              16          0         0      0     4k",
-"    c84027a0 uid_cache                 32          3       339      3     4k",
-"    c84026b8 skbuff_head_cache        160        320       624     26     4k",
-"    c84025d0 sock                     832         32       180     20     8k",
-"    c84024e8 sigqueue                 132          0       203      7     4k",
-"    c8402400 cdev_cache                64         19       472      8     4k",
-"    c8402318 bdev_cache                64          8       236      4     4k",
-"    c8402230 mnt_cache                 96         11       120      3     4k",
-"    c8402148 inode_cache              480        817       848    106     4k",
-"    c8402060 dentry_cache             128       1352      1470     49     4k",
-"    c8403ee0 filp                      96        244       440     11     4k",
-"    c8403df8 names_cache             4096          0        12     12     4k",
-"    c8403d10 buffer_head               96      14936     16000    400     4k",
-"    c8403c28 mm_struct                128         25       240      8     4k",
-"    c8403b40 vm_area_struct            64        393      1298     22     4k",
-"    c8403a58 fs_cache                  64         30       472      8     4k",
-"    c8403970 files_cache              416         30       135     15     4k",
-"    c8403888 signal_act              1312         32        99     33     4k",
-"    c84037a0 size-131072(DMA)      131072          0         0      0   128k",
-"    c84036b8 size-131072           131072          1         1      1   128k",
-"    c84035d0 size-65536(DMA)        65536          0         0      0    64k",
-"    c84034e8 size-65536             65536          0         0      0    64k",
-"    c8403400 size-32768(DMA)        32768          0         0      0    32k",
-"    c8403318 size-32768             32768          0         1      1    32k",
-"    c8403230 size-16384(DMA)        16384          0         0      0    16k",
-"    c8403148 size-16384             16384          0         0      0    16k",
-"    c8403060 size-8192(DMA)          8192          0         0      0     8k",
-"    c8401ee0 size-8192               8192          1         2      2     8k",
-"    c8401df8 size-4096(DMA)          4096          0         0      0     4k",
-"    c8401d10 size-4096               4096         30        30     30     4k",
-"    c8401c28 size-2048(DMA)          2048          0         0      0     4k",
-"    c8401b40 size-2048               2048         37       132     66     4k",
-"    c8401a58 size-1024(DMA)          1024          0         0      0     4k",
-"    c8401970 size-1024               1024        301       328     82     4k",
-"    c8401888 size-512(DMA)            512          0         0      0     4k",
-"    c84017a0 size-512                 512        141       168     21     4k",
-"    c84016b8 size-256(DMA)            256          0         0      0     4k",
-"    c84015d0 size-256                 256         80       435     29     4k",
-"    c84014e8 size-128(DMA)            128          0         0      0     4k",
-"    c8401400 size-128                 128        508       840     28     4k",
-"    c8401318 size-64(DMA)              64          0         0      0     4k",
-"    c8401230 size-64                   64        978      1357     23     4k",
-"    c8401148 size-32(DMA)              32          0         0      0     4k",
-"    c8401060 size-32                   32       1244      1808     16     4k",
+"    CACHE     OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME",
+"    c02eadc0      232         58        68      4     4k  kmem_cache",
+"    f79c2888      128          0         0      0     4k  ip_vs_conn",
+"    f79c2970       96          0         0      0     4k  tcp_tw_bucket",
+"    f79c2a58       32         12       565      5     4k  tcp_bind_bucket",
+"    f79c2b40       64          0        59      1     4k  tcp_open_request",
+"    f79c2c28       64          1        59      1     4k  inet_peer_cache",
+"    f79c2d10       32         11       339      3     4k  ip_fib_hash",
+"    f79c2df8      160          8       120      5     4k  ip_dst_cache",
+"    f79c2ee0      128          1        30      1     4k  arp_cache",
+"    c8402970       96      30208     37800    945     4k  blkdev_requests",
+"    c8402a58      384          0         0      0     4k  nfs_read_data",
+"    c8402b40      384          0         0      0     4k  nfs_write_data",
+"    c8402c28       96          0         0      0     4k  nfs_page",
+"    c8402d10       20          0         0      0     4k  dnotify cache",
+"    c8402df8       92          3       336      8     4k  file lock cache",
+"    c8402ee0       16          0         0      0     4k  fasync cache",
+"    c84027a0       32          3       339      3     4k  uid_cache",
+"    c84026b8      160        320       624     26     4k  skbuff_head_cache",
+"    c84025d0      832         32       180     20     8k  sock",
+"    c84024e8      132          0       203      7     4k  sigqueue",
+"    c8402400       64         19       472      8     4k  cdev_cache",
+"    c8402318       64          8       236      4     4k  bdev_cache",
+"    c8402230       96         11       120      3     4k  mnt_cache",
+"    c8402148      480        817       848    106     4k  inode_cache",
+"    c8402060      128       1352      1470     49     4k  dentry_cache",
+"    c8403ee0       96        244       440     11     4k  filp",
+"    c8403df8     4096          0        12     12     4k  names_cache",
+"    c8403d10       96      14936     16000    400     4k  buffer_head",
+"    c8403c28      128         25       240      8     4k  mm_struct",
+"    c8403b40       64        393      1298     22     4k  vm_area_struct",
+"    c8403a58       64         30       472      8     4k  fs_cache",
+"    c8403970      416         30       135     15     4k  files_cache",
+"    c8403888     1312         32        99     33     4k  signal_act",
+"    c84037a0   131072          0         0      0   128k  size-131072(DMA)",
+"    c84036b8   131072          1         1      1   128k  size-131072",
+"    c84035d0    65536          0         0      0    64k  size-65536(DMA)",
+"    c84034e8    65536          0         0      0    64k  size-65536",
+"    c8403400    32768          0         0      0    32k  size-32768(DMA)",
+"    c8403318    32768          0         1      1    32k  size-32768",
+"    c8403230    16384          0         0      0    16k  size-16384(DMA)",
+"    c8403148    16384          0         0      0    16k  size-16384",
+"    c8403060     8192          0         0      0     8k  size-8192(DMA)",
+"    c8401ee0     8192          1         2      2     8k  size-8192",
+"    c8401df8     4096          0         0      0     4k  size-4096(DMA)",
+"    c8401d10     4096         30        30     30     4k  size-4096",
+"    c8401c28     2048          0         0      0     4k  size-2048(DMA)",
+"    c8401b40     2048         37       132     66     4k  size-2048",
+"    c8401a58     1024          0         0      0     4k  size-1024(DMA)",
+"    c8401970     1024        301       328     82     4k  size-1024",
+"    c8401888      512          0         0      0     4k  size-512(DMA)",
+"    c84017a0      512        141       168     21     4k  size-512",
+"    c84016b8      256          0         0      0     4k  size-256(DMA)",
+"    c84015d0      256         80       435     29     4k  size-256",
+"    c84014e8      128          0         0      0     4k  size-128(DMA)",
+"    c8401400      128        508       840     28     4k  size-128",
+"    c8401318       64          0         0      0     4k  size-64(DMA)",
+"    c8401230       64        978      1357     23     4k  size-64",
+"    c8401148       32          0         0      0     4k  size-32(DMA)",
+"    c8401060       32       1244      1808     16     4k  size-32",
 
 " ",
 "  Display all slab data in the \"arp_cache\" cache:\n",
 "    %s> kmem -S arp_cache",
-"    CACHE     NAME                OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE",
-"    f79c2ee0 arp_cache                128          1        30      1     4k",
+"    CACHE     OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME",
+"    f79c2ee0      128          1        30      1     4k  arp_cache",
 "    SLAB      MEMORY    TOTAL  ALLOCATED  FREE",
 "    f729d000  f729d0a0     30          1    29",
 "    FREE / [ALLOCATED]",
@@ -6991,8 +6991,8 @@ char *help_kmem[] = {
 " ",
 "  Search the kmalloc() slab subsystem for address c3fbdb60:\n",
 "    %s> kmem -s c3fbdb60",
-"    CACHE     NAME                OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE",
-"    c8402970 blkdev_requests           96      30208     37800    945     4k",
+"    CACHE     OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME",
+"    c8402970       96      30208     37800    945     4k  blkdev_requests",
 "    SLAB      MEMORY    TOTAL  ALLOCATED  FREE",
 "    c3fbd020  c3fbd0e0     40         40     0",
 "    FREE / [ALLOCATED]",
@@ -7000,8 +7000,8 @@ char *help_kmem[] = {
 " ",
 "  Make a generic search (no flags) for the same address c3fbdb60:\n",
 "    %s> kmem c3fbdb60 ",
-"    CACHE     NAME                OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE",
-"    c8402970 blkdev_requests           96      30208     37800    945     4k",
+"    CACHE     OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME",
+"    c8402970       96      30208     37800    945     4k  blkdev_requests",
 "    SLAB      MEMORY    TOTAL  ALLOCATED  FREE",
 "    c3fbd020  c3fbd0e0     40         40     0 ",
 "    FREE / [ALLOCATED]",
diff --git a/memory.c b/memory.c
index 2e48d7b..5bcf09e 100644
--- a/memory.c
+++ b/memory.c
@@ -9378,7 +9378,7 @@ kmem_cache_init(void)
 
 	if (!strlen(kmem_cache_hdr)) 
 		sprintf(kmem_cache_hdr,
-     "CACHE%sNAME                 OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE\n",
+     "CACHE%s OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME\n",
 			space(VADDR_PRLEN > 8 ? 12 : 4));
 
 	if (!strlen(free_inuse_hdr)) 
@@ -9969,54 +9969,30 @@ static void
 dump_kmem_cache_info(struct meminfo *si)
 {
 	char b1[BUFSIZE];
-	char b2[BUFSIZE];
-	int namelen, sizelen, spacelen;
 	ulong objsize, allocated, total;
 
 	if (si->flags & SLAB_GATHER_FAILURE)
 		error(INFO, "%s: cannot gather relevant slab data\n", si->curname);
 
-	fprintf(fp, "%s ",
-		mkstring(b1, VADDR_PRLEN, LJUST|LONG_HEX, MKSTR(si->cache))); 
-
 	objsize = (vt->flags & KMALLOC_SLUB) ? si->objsize : si->size;
 
-	namelen = strlen(si->curname);
-	sprintf(b2, "%ld", objsize);
-	sizelen = strlen(b2);
-	spacelen = 0;
-
-	if (namelen++ > 18) {
-		spacelen = 29 - namelen - sizelen;
-		fprintf(fp, "%s%s%ld  ", si->curname,
-			space(spacelen <= 0 ? 1 : spacelen), objsize);
-		if (spacelen > 0)
-			spacelen = 1;
-		if (si->flags & SLAB_GATHER_FAILURE)
-			sprintf(b1, "%c%ds  ", '%', 9 + spacelen - 1);
-		else
-			sprintf(b1, "%c%dld  ", '%', 9 + spacelen - 1);
-	} else {
-		fprintf(fp, "%-18s  %8ld  ", si->curname, objsize);
-		if (si->flags & SLAB_GATHER_FAILURE)
-			sprintf(b1, "%c%ds  ", '%', 9);
-		else
-			sprintf(b1, "%c%dld  ", '%', 9);
-	}
+	fprintf(fp, "%s %8ld  ",
+		mkstring(b1, VADDR_PRLEN, LJUST|LONG_HEX, MKSTR(si->cache)),
+		objsize);
 
 	if (si->flags & SLAB_GATHER_FAILURE) {
-		fprintf(fp, b1, "?");
-		fprintf(fp, "%8s  %5s  %4ldk\n",
-			"?", "?", si->slabsize/1024);
+		fprintf(fp, "%9s  %8s  %5s  ", "?", "?", "?");
 	} else {
 		allocated = (vt->flags & (PERCPU_KMALLOC_V1|PERCPU_KMALLOC_V2)) ?
 				si->inuse - si->cpucached_cache : si->inuse;
 		total = (vt->flags & KMALLOC_SLUB) ?
 				si->inuse + si->free : si->num_slabs * si->c_num;
-		fprintf(fp, b1, allocated);
-		fprintf(fp, "%8ld  %5ld  %4ldk\n", total,
-			si->num_slabs, si->slabsize/1024);
+
+		fprintf(fp, "%9ld  %8ld  %5ld  ",
+			allocated, total, si->num_slabs);
 	}
+
+	fprintf(fp, "%4ldk  %s\n", si->slabsize/1024, si->curname);
 }
 
 #define DUMP_SLAB_INFO() \
-- 
1.8.3.1




More information about the Crash-utility mailing list