diff options
author | Glauber Costa <glommer@parallels.com> | 2012-10-19 10:20:26 -0400 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2012-10-24 02:38:38 -0400 |
commit | bcee6e2a13d580f6c21d748fcd7239ccc66cb4b8 (patch) | |
tree | 5852e9c608b292605426156dcafaadf1d32709c4 /mm/slab_common.c | |
parent | b7454ad3cfc3043c5264729a6204f049fe1f34b1 (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.c | 23 |
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 |
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 | static void *s_start(struct seq_file *m, loff_t *pos) | 222 | static void *s_start(struct seq_file *m, loff_t *pos) |
200 | { | 223 | { |
201 | loff_t n = *pos; | 224 | loff_t n = *pos; |