Commit bcee6e2a13d580f6c21d748fcd7239ccc66cb4b8

Authored by Glauber Costa
Committed by Pekka Enberg
1 parent b7454ad3cf

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: Glauber Costa <glommer@parallels.com>
Acked-by: Christoph Lameter <cl@linux.com>
CC: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>

Showing 4 changed files with 23 additions and 36 deletions Side-by-side Diff

... ... @@ -4276,30 +4276,6 @@
4276 4276 }
4277 4277  
4278 4278 #ifdef CONFIG_SLABINFO
4279   -
4280   -void print_slabinfo_header(struct seq_file *m)
4281   -{
4282   - /*
4283   - * Output format version, so at least we can change it
4284   - * without _too_ many complaints.
4285   - */
4286   -#if STATS
4287   - seq_puts(m, "slabinfo - version: 2.1 (statistics)\n");
4288   -#else
4289   - seq_puts(m, "slabinfo - version: 2.1\n");
4290   -#endif
4291   - seq_puts(m, "# name <active_objs> <num_objs> <objsize> "
4292   - "<objperslab> <pagesperslab>");
4293   - seq_puts(m, " : tunables <limit> <batchcount> <sharedfactor>");
4294   - seq_puts(m, " : slabdata <active_slabs> <num_slabs> <sharedavail>");
4295   -#if STATS
4296   - seq_puts(m, " : globalstat <listallocs> <maxobjs> <grown> <reaped> "
4297   - "<error> <maxfreeable> <nodeallocs> <remotefrees> <alienoverflow>");
4298   - seq_puts(m, " : cpustat <allochit> <allocmiss> <freehit> <freemiss>");
4299   -#endif
4300   - seq_putc(m, '\n');
4301   -}
4302   -
4303 4279 int slabinfo_show(struct seq_file *m, void *p)
4304 4280 {
4305 4281 struct kmem_cache *cachep = list_entry(p, struct kmem_cache, list);
... ... @@ -49,8 +49,6 @@
49 49  
50 50 struct seq_file;
51 51 struct file;
52   -void print_slabinfo_header(struct seq_file *m);
53   -
54 52 int slabinfo_show(struct seq_file *m, void *p);
55 53  
56 54 ssize_t slabinfo_write(struct file *file, const char __user *buffer,
... ... @@ -196,6 +196,29 @@
196 196 }
197 197  
198 198 #ifdef CONFIG_SLABINFO
  199 +static void print_slabinfo_header(struct seq_file *m)
  200 +{
  201 + /*
  202 + * Output format version, so at least we can change it
  203 + * without _too_ many complaints.
  204 + */
  205 +#ifdef CONFIG_DEBUG_SLAB
  206 + seq_puts(m, "slabinfo - version: 2.1 (statistics)\n");
  207 +#else
  208 + seq_puts(m, "slabinfo - version: 2.1\n");
  209 +#endif
  210 + seq_puts(m, "# name <active_objs> <num_objs> <objsize> "
  211 + "<objperslab> <pagesperslab>");
  212 + seq_puts(m, " : tunables <limit> <batchcount> <sharedfactor>");
  213 + seq_puts(m, " : slabdata <active_slabs> <num_slabs> <sharedavail>");
  214 +#ifdef CONFIG_DEBUG_SLAB
  215 + seq_puts(m, " : globalstat <listallocs> <maxobjs> <grown> <reaped> "
  216 + "<error> <maxfreeable> <nodeallocs> <remotefrees> <alienoverflow>");
  217 + seq_puts(m, " : cpustat <allochit> <allocmiss> <freehit> <freemiss>");
  218 +#endif
  219 + seq_putc(m, '\n');
  220 +}
  221 +
199 222 static void *s_start(struct seq_file *m, loff_t *pos)
200 223 {
201 224 loff_t n = *pos;
... ... @@ -5405,16 +5405,6 @@
5405 5405 * The /proc/slabinfo ABI
5406 5406 */
5407 5407 #ifdef CONFIG_SLABINFO
5408   -void print_slabinfo_header(struct seq_file *m)
5409   -{
5410   - seq_puts(m, "slabinfo - version: 2.1\n");
5411   - seq_puts(m, "# name <active_objs> <num_objs> <object_size> "
5412   - "<objperslab> <pagesperslab>");
5413   - seq_puts(m, " : tunables <limit> <batchcount> <sharedfactor>");
5414   - seq_puts(m, " : slabdata <active_slabs> <num_slabs> <sharedavail>");
5415   - seq_putc(m, '\n');
5416   -}
5417   -
5418 5408 int slabinfo_show(struct seq_file *m, void *p)
5419 5409 {
5420 5410 unsigned long nr_partials = 0;