aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slab_common.c
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/slab_common.c
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/slab_common.c')
-rw-r--r--mm/slab_common.c23
1 files changed, 23 insertions, 0 deletions
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;