|
@@ -196,6 +196,29 @@ int slab_is_available(void)
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_SLABINFO
|
|
|
+static void print_slabinfo_header(struct seq_file *m)
|
|
|
+{
|
|
|
+ /*
|
|
|
+ * Output format version, so at least we can change it
|
|
|
+ * without _too_ many complaints.
|
|
|
+ */
|
|
|
+#ifdef CONFIG_DEBUG_SLAB
|
|
|
+ seq_puts(m, "slabinfo - version: 2.1 (statistics)\n");
|
|
|
+#else
|
|
|
+ seq_puts(m, "slabinfo - version: 2.1\n");
|
|
|
+#endif
|
|
|
+ seq_puts(m, "# name <active_objs> <num_objs> <objsize> "
|
|
|
+ "<objperslab> <pagesperslab>");
|
|
|
+ seq_puts(m, " : tunables <limit> <batchcount> <sharedfactor>");
|
|
|
+ seq_puts(m, " : slabdata <active_slabs> <num_slabs> <sharedavail>");
|
|
|
+#ifdef CONFIG_DEBUG_SLAB
|
|
|
+ seq_puts(m, " : globalstat <listallocs> <maxobjs> <grown> <reaped> "
|
|
|
+ "<error> <maxfreeable> <nodeallocs> <remotefrees> <alienoverflow>");
|
|
|
+ seq_puts(m, " : cpustat <allochit> <allocmiss> <freehit> <freemiss>");
|
|
|
+#endif
|
|
|
+ seq_putc(m, '\n');
|
|
|
+}
|
|
|
+
|
|
|
static void *s_start(struct seq_file *m, loff_t *pos)
|
|
|
{
|
|
|
loff_t n = *pos;
|