aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorGlauber Costa <glommer@parallels.com>2012-10-19 10:20:26 -0400
committerPekka Enberg <penberg@kernel.org>2012-10-24 02:38:38 -0400
commitbcee6e2a13d580f6c21d748fcd7239ccc66cb4b8 (patch)
tree5852e9c608b292605426156dcafaadf1d32709c4 /mm
parentb7454ad3cfc3043c5264729a6204f049fe1f34b1 (diff)
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>
Diffstat (limited to 'mm')
-rw-r--r--mm/slab.c24
-rw-r--r--mm/slab.h2
-rw-r--r--mm/slab_common.c23
-rw-r--r--mm/slub.c10
4 files changed, 23 insertions, 36 deletions
diff --git a/mm/slab.c b/mm/slab.c
index a6e045c13b8d..73811ca0ae29 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -4276,30 +4276,6 @@ out:
4276} 4276}
4277 4277
4278#ifdef CONFIG_SLABINFO 4278#ifdef CONFIG_SLABINFO
4279
4280void 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
4303int slabinfo_show(struct seq_file *m, void *p) 4279int slabinfo_show(struct seq_file *m, void *p)
4304{ 4280{
4305 struct kmem_cache *cachep = list_entry(p, struct kmem_cache, list); 4281 struct kmem_cache *cachep = list_entry(p, struct kmem_cache, list);
diff --git a/mm/slab.h b/mm/slab.h
index dc78101962a1..3442eb83ee1e 100644
--- a/mm/slab.h
+++ b/mm/slab.h
@@ -49,8 +49,6 @@ int __kmem_cache_shutdown(struct kmem_cache *);
49 49
50struct seq_file; 50struct seq_file;
51struct file; 51struct file;
52void print_slabinfo_header(struct seq_file *m);
53
54int slabinfo_show(struct seq_file *m, void *p); 52int slabinfo_show(struct seq_file *m, void *p);
55 53
56ssize_t slabinfo_write(struct file *file, const char __user *buffer, 54ssize_t slabinfo_write(struct file *file, const char __user *buffer,
diff --git a/mm/slab_common.c b/mm/slab_common.c
index 2e4b4c6d89e2..c64a0438c1f3 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -196,6 +196,29 @@ int slab_is_available(void)
196} 196}
197 197
198#ifdef CONFIG_SLABINFO 198#ifdef CONFIG_SLABINFO
199static 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
199static void *s_start(struct seq_file *m, loff_t *pos) 222static void *s_start(struct seq_file *m, loff_t *pos)
200{ 223{
201 loff_t n = *pos; 224 loff_t n = *pos;
diff --git a/mm/slub.c b/mm/slub.c
index 77a0c8a9fc75..6b5ee3472e18 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -5405,16 +5405,6 @@ __initcall(slab_sysfs_init);
5405 * The /proc/slabinfo ABI 5405 * The /proc/slabinfo ABI
5406 */ 5406 */
5407#ifdef CONFIG_SLABINFO 5407#ifdef CONFIG_SLABINFO
5408void 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
5418int slabinfo_show(struct seq_file *m, void *p) 5408int slabinfo_show(struct seq_file *m, void *p)
5419{ 5409{
5420 unsigned long nr_partials = 0; 5410 unsigned long nr_partials = 0;