Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bcee6e2a authored by Glauber Costa's avatar Glauber Costa Committed by Pekka Enberg
Browse files

mm/sl[au]b: Move print_slabinfo_header to slab_common.c



The header format is highly similar between slab and slub. The main
difference lays in the fact that slab may optionally have statistics
added here in case of CONFIG_SLAB_DEBUG, while the slub will stick them
somewhere else.

By making sure that information conditionally lives inside a
globally-visible CONFIG_DEBUG_SLAB switch, we can move the header
printing to a common location.

Signed-off-by: default avatarGlauber Costa <glommer@parallels.com>
Acked-by: default avatarChristoph Lameter <cl@linux.com>
CC: David Rientjes <rientjes@google.com>
Signed-off-by: default avatarPekka Enberg <penberg@kernel.org>
parent b7454ad3
Loading
Loading
Loading
Loading
+0 −24
Original line number Diff line number Diff line
@@ -4276,30 +4276,6 @@ static void cache_reap(struct work_struct *w)
}

#ifdef CONFIG_SLABINFO

void print_slabinfo_header(struct seq_file *m)
{
	/*
	 * Output format version, so at least we can change it
	 * without _too_ many complaints.
	 */
#if STATS
	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>");
#if STATS
	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');
}

int slabinfo_show(struct seq_file *m, void *p)
{
	struct kmem_cache *cachep = list_entry(p, struct kmem_cache, list);
+0 −2
Original line number Diff line number Diff line
@@ -49,8 +49,6 @@ int __kmem_cache_shutdown(struct kmem_cache *);

struct seq_file;
struct file;
void print_slabinfo_header(struct seq_file *m);

int slabinfo_show(struct seq_file *m, void *p);

ssize_t slabinfo_write(struct file *file, const char __user *buffer,
+23 −0
Original line number Diff line number Diff line
@@ -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;
+0 −10
Original line number Diff line number Diff line
@@ -5405,16 +5405,6 @@ __initcall(slab_sysfs_init);
 * The /proc/slabinfo ABI
 */
#ifdef CONFIG_SLABINFO
void print_slabinfo_header(struct seq_file *m)
{
	seq_puts(m, "slabinfo - version: 2.1\n");
	seq_puts(m, "# name            <active_objs> <num_objs> <object_size> "
		 "<objperslab> <pagesperslab>");
	seq_puts(m, " : tunables <limit> <batchcount> <sharedfactor>");
	seq_puts(m, " : slabdata <active_slabs> <num_slabs> <sharedavail>");
	seq_putc(m, '\n');
}

int slabinfo_show(struct seq_file *m, void *p)
{
	unsigned long nr_partials = 0;