diff options
| author | Christoph Lameter <cl@linux.com> | 2011-08-09 17:12:28 -0400 |
|---|---|---|
| committer | Pekka Enberg <penberg@kernel.org> | 2011-08-19 12:34:27 -0400 |
| commit | aca726a07a71ff7aedc0e90a91f80a2701adcca5 (patch) | |
| tree | 48f5d7c678310cf514d9ebb0b37b3349f40c173a /tools | |
| parent | 49e2258586b423684f03c278149ab46d8f8b6700 (diff) | |
slub: update slabinfo tools to report per cpu partial list statistics
Update the slabinfo tool to report the stats on per cpu partial list usage.
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/slub/slabinfo.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/slub/slabinfo.c b/tools/slub/slabinfo.c index 868cc93f7ac2..47d78533d72e 100644 --- a/tools/slub/slabinfo.c +++ b/tools/slub/slabinfo.c | |||
| @@ -42,6 +42,7 @@ struct slabinfo { | |||
| 42 | unsigned long deactivate_remote_frees, order_fallback; | 42 | unsigned long deactivate_remote_frees, order_fallback; |
| 43 | unsigned long cmpxchg_double_cpu_fail, cmpxchg_double_fail; | 43 | unsigned long cmpxchg_double_cpu_fail, cmpxchg_double_fail; |
| 44 | unsigned long alloc_node_mismatch, deactivate_bypass; | 44 | unsigned long alloc_node_mismatch, deactivate_bypass; |
| 45 | unsigned long cpu_partial_alloc, cpu_partial_free; | ||
| 45 | int numa[MAX_NODES]; | 46 | int numa[MAX_NODES]; |
| 46 | int numa_partial[MAX_NODES]; | 47 | int numa_partial[MAX_NODES]; |
| 47 | } slabinfo[MAX_SLABS]; | 48 | } slabinfo[MAX_SLABS]; |
| @@ -455,6 +456,11 @@ static void slab_stats(struct slabinfo *s) | |||
| 455 | s->alloc_from_partial * 100 / total_alloc, | 456 | s->alloc_from_partial * 100 / total_alloc, |
| 456 | s->free_remove_partial * 100 / total_free); | 457 | s->free_remove_partial * 100 / total_free); |
| 457 | 458 | ||
| 459 | printf("Cpu partial list %8lu %8lu %3lu %3lu\n", | ||
| 460 | s->cpu_partial_alloc, s->cpu_partial_free, | ||
| 461 | s->cpu_partial_alloc * 100 / total_alloc, | ||
| 462 | s->cpu_partial_free * 100 / total_free); | ||
| 463 | |||
| 458 | printf("RemoteObj/SlabFrozen %8lu %8lu %3lu %3lu\n", | 464 | printf("RemoteObj/SlabFrozen %8lu %8lu %3lu %3lu\n", |
| 459 | s->deactivate_remote_frees, s->free_frozen, | 465 | s->deactivate_remote_frees, s->free_frozen, |
| 460 | s->deactivate_remote_frees * 100 / total_alloc, | 466 | s->deactivate_remote_frees * 100 / total_alloc, |
| @@ -1209,6 +1215,8 @@ static void read_slab_dir(void) | |||
| 1209 | slab->order_fallback = get_obj("order_fallback"); | 1215 | slab->order_fallback = get_obj("order_fallback"); |
| 1210 | slab->cmpxchg_double_cpu_fail = get_obj("cmpxchg_double_cpu_fail"); | 1216 | slab->cmpxchg_double_cpu_fail = get_obj("cmpxchg_double_cpu_fail"); |
| 1211 | slab->cmpxchg_double_fail = get_obj("cmpxchg_double_fail"); | 1217 | slab->cmpxchg_double_fail = get_obj("cmpxchg_double_fail"); |
| 1218 | slab->cpu_partial_alloc = get_obj("cpu_partial_alloc"); | ||
| 1219 | slab->cpu_partial_free = get_obj("cpu_partial_free"); | ||
| 1212 | slab->alloc_node_mismatch = get_obj("alloc_node_mismatch"); | 1220 | slab->alloc_node_mismatch = get_obj("alloc_node_mismatch"); |
| 1213 | slab->deactivate_bypass = get_obj("deactivate_bypass"); | 1221 | slab->deactivate_bypass = get_obj("deactivate_bypass"); |
| 1214 | chdir(".."); | 1222 | chdir(".."); |
