- vlib_cli_output (vm, " %U\n", format_page_map,
- pointer_to_uword (mspace_least_addr (mspace)),
- mi.arena);
- vlib_cli_output (vm, " %U\n", format_mheap,
- clib_per_numa_mheaps[index], verbose);
+ vlib_cli_output (vm, " %U\n", format_clib_mem_heap,
+ mm->per_numa_mheaps[index], verbose);
+ }
+ }
+ if (map)
+ {
+ clib_mem_page_stats_t stats = { };
+ clib_mem_vm_map_hdr_t *hdr = 0;
+ u8 *s = 0;
+ int numa = -1;
+
+ 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");
+ s = format (s, " Name");
+ vlib_cli_output (vm, "%v", s);
+ vec_reset_length (s);
+
+ while ((hdr = clib_mem_vm_get_next_map_hdr (hdr)))
+ {
+ clib_mem_get_page_stats ((void *) hdr->base_addr,
+ hdr->log2_page_sz, hdr->num_pages,
+ &stats);
+ s = format (s, "%016lx%7U",
+ hdr->base_addr, format_memory_size,
+ 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)
+ s = format (s, "%6lu", stats.per_numa[numa]);
+ s = format (s, "%7lu", stats.not_mapped);
+ s = format (s, " %s", hdr->name);
+ vlib_cli_output (vm, "%v", s);
+ vec_reset_length (s);