Update /proc/spl/kmem/slab output
The 'slab_fail', 'slab_create', and 'slab_destroy' columns in the slab output have been removed because they are virtually always zero and not very useful. The much more useful 'size' and 'alloc' columns have been added which show the total slab size and how much of the total size has been allocated to objects. Finally, the formatting has been updated to be much more human readable while still being friendly for tool like awk to parse.
This commit is contained in:
parent
495bd532ab
commit
d0a1038ff3
@ -562,12 +562,16 @@ SPL_PROC_HANDLER(proc_dofreemem)
|
||||
static void
|
||||
slab_seq_show_headers(struct seq_file *f)
|
||||
{
|
||||
seq_printf(f, "%-36s %-6s - %s %s %s - %s %s %s - "
|
||||
"%s %s %s - %s %s %s\n", "name", "flags",
|
||||
"obj_size", "slab_objs", "slab_size",
|
||||
"slab_fail", "slab_create", "slab_destroy",
|
||||
"slab_total", "slab_alloc", "slab_max",
|
||||
"obj_total", "obj_alloc", "obj_max");
|
||||
seq_printf(f,
|
||||
"--------------------- cache ----------"
|
||||
"--------------------------------------------- "
|
||||
"----- slab ------ "
|
||||
"---- object -----\n");
|
||||
seq_printf(f,
|
||||
"name "
|
||||
" flags size alloc slabsize objsize "
|
||||
"total alloc max "
|
||||
"total alloc max\n");
|
||||
}
|
||||
|
||||
static int
|
||||
@ -578,22 +582,20 @@ slab_seq_show(struct seq_file *f, void *p)
|
||||
ASSERT(skc->skc_magic == SKC_MAGIC);
|
||||
|
||||
spin_lock(&skc->skc_lock);
|
||||
seq_printf(f, "%-36s ", skc->skc_name);
|
||||
seq_printf(f, "0x%04lx - %u %u %u - %lu %lu %lu - "
|
||||
"%lu %lu %lu - %lu %lu %lu\n",
|
||||
(long unsigned)skc->skc_flags,
|
||||
(unsigned)skc->skc_obj_size,
|
||||
(unsigned)skc->skc_slab_objs,
|
||||
(unsigned)skc->skc_slab_size,
|
||||
(long unsigned)skc->skc_slab_fail,
|
||||
(long unsigned)skc->skc_slab_create,
|
||||
(long unsigned)skc->skc_slab_destroy,
|
||||
(long unsigned)skc->skc_slab_total,
|
||||
(long unsigned)skc->skc_slab_alloc,
|
||||
(long unsigned)skc->skc_slab_max,
|
||||
(long unsigned)skc->skc_obj_total,
|
||||
(long unsigned)skc->skc_obj_alloc,
|
||||
(long unsigned)skc->skc_obj_max);
|
||||
seq_printf(f, "%-36s ", skc->skc_name);
|
||||
seq_printf(f, "0x%05lx %9lu %9lu %8u %8u "
|
||||
"%5lu %5lu %5lu %5lu %5lu %5lu\n",
|
||||
(long unsigned)skc->skc_flags,
|
||||
(long unsigned)(skc->skc_slab_size * skc->skc_slab_total),
|
||||
(long unsigned)(skc->skc_obj_size * skc->skc_obj_alloc),
|
||||
(unsigned)skc->skc_slab_size,
|
||||
(unsigned)skc->skc_obj_size,
|
||||
(long unsigned)skc->skc_slab_total,
|
||||
(long unsigned)skc->skc_slab_alloc,
|
||||
(long unsigned)skc->skc_slab_max,
|
||||
(long unsigned)skc->skc_obj_total,
|
||||
(long unsigned)skc->skc_obj_alloc,
|
||||
(long unsigned)skc->skc_obj_max);
|
||||
|
||||
spin_unlock(&skc->skc_lock);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user