vlib: show FD in 'show memory map' 00/28900/3
authorDamjan Marion <damarion@cisco.com>
Thu, 17 Sep 2020 11:29:33 +0000 (13:29 +0200)
committerDamjan Marion <dmarion@me.com>
Thu, 17 Sep 2020 13:36:50 +0000 (13:36 +0000)
Type: improvement
Change-Id: I04752c011e4ca58f56aa53f6ae27bae93a5c4590
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/vlib/cli.c
src/vppinfra/linux/mem.c
src/vppinfra/mem.h

index 223a3b7..6841a5b 100644 (file)
@@ -882,8 +882,8 @@ show_memory_usage (vlib_main_t * vm,
        u8 *s = 0;
        int numa = -1;
 
-       s = format (s, "\n%-16s%7s%7s%7s",
-                   "StartAddr", "size", "PageSz", "Pages");
+       s = format (s, "\n%-16s%7s%5s%7s%7s",
+                   "StartAddr", "size", "FD", "PageSz", "Pages");
        while ((numa = vlib_mem_get_next_numa_node (numa)) != -1)
          s = format (s, " Numa%u", numa);
        s = format (s, " NotMap");
@@ -896,9 +896,16 @@ show_memory_usage (vlib_main_t * vm,
            clib_mem_get_page_stats ((void *) hdr->base_addr,
                                     hdr->log2_page_sz, hdr->num_pages,
                                     &stats);
-           s = format (s, "%016lx%7U%7U%7lu",
+           s = format (s, "%016lx%7U",
                        hdr->base_addr, format_memory_size,
-                       hdr->num_pages << hdr->log2_page_sz,
+                       hdr->num_pages << hdr->log2_page_sz);
+
+           if (hdr->fd != -1)
+             s = format (s, "%5d", hdr->fd);
+           else
+             s = format (s, "%5s", " ");
+
+           s = format (s, "%7U%7lu",
                        format_log2_page_size, hdr->log2_page_sz,
                        hdr->num_pages);
            while ((numa = vlib_mem_get_next_numa_node (numa)) != -1)
index 96fb0db..ef98b3f 100644 (file)
@@ -579,6 +579,7 @@ clib_mem_vm_map_internal (void *base, clib_mem_page_sz_t log2_page_sz,
   hdr->base_addr = (uword) base;
   hdr->log2_page_sz = log2_page_sz;
   hdr->num_pages = size >> log2_page_sz;
+  hdr->fd = fd;
   snprintf (hdr->name, CLIB_VM_MAP_HDR_NAME_MAX_LEN - 1, "%s", (char *) name);
   hdr->name[CLIB_VM_MAP_HDR_NAME_MAX_LEN - 1] = 0;
   mprotect (hdr, sys_page_sz, PROT_NONE);
index e6f019c..9d0aa09 100644 (file)
@@ -83,6 +83,9 @@ typedef struct _clib_mem_vm_map_hdr
   /* page size (log2) */
   clib_mem_page_sz_t log2_page_sz;
 
+  /* file descriptor, -1 if memory is not shared */
+  int fd;
+
   /* allocation mame */
 #define CLIB_VM_MAP_HDR_NAME_MAX_LEN 64
   char name[CLIB_VM_MAP_HDR_NAME_MAX_LEN];