Merge branches 'slab/next' and 'slub/partial' into slab/for-linus
[linux-2.6.git] / tools / slub / slabinfo.c
index 868cc93..164cbcf 100644 (file)
@@ -42,6 +42,7 @@ struct slabinfo {
        unsigned long deactivate_remote_frees, order_fallback;
        unsigned long cmpxchg_double_cpu_fail, cmpxchg_double_fail;
        unsigned long alloc_node_mismatch, deactivate_bypass;
+       unsigned long cpu_partial_alloc, cpu_partial_free;
        int numa[MAX_NODES];
        int numa_partial[MAX_NODES];
 } slabinfo[MAX_SLABS];
@@ -455,6 +456,11 @@ static void slab_stats(struct slabinfo *s)
                s->alloc_from_partial * 100 / total_alloc,
                s->free_remove_partial * 100 / total_free);
 
+       printf("Cpu partial list     %8lu %8lu %3lu %3lu\n",
+               s->cpu_partial_alloc, s->cpu_partial_free,
+               s->cpu_partial_alloc * 100 / total_alloc,
+               s->cpu_partial_free * 100 / total_free);
+
        printf("RemoteObj/SlabFrozen %8lu %8lu %3lu %3lu\n",
                s->deactivate_remote_frees, s->free_frozen,
                s->deactivate_remote_frees * 100 / total_alloc,
@@ -1145,7 +1151,7 @@ static void read_slab_dir(void)
                switch (de->d_type) {
                   case DT_LNK:
                        alias->name = strdup(de->d_name);
-                       count = readlink(de->d_name, buffer, sizeof(buffer));
+                       count = readlink(de->d_name, buffer, sizeof(buffer)-1);
 
                        if (count < 0)
                                fatal("Cannot read symlink %s\n", de->d_name);
@@ -1209,6 +1215,8 @@ static void read_slab_dir(void)
                        slab->order_fallback = get_obj("order_fallback");
                        slab->cmpxchg_double_cpu_fail = get_obj("cmpxchg_double_cpu_fail");
                        slab->cmpxchg_double_fail = get_obj("cmpxchg_double_fail");
+                       slab->cpu_partial_alloc = get_obj("cpu_partial_alloc");
+                       slab->cpu_partial_free = get_obj("cpu_partial_free");
                        slab->alloc_node_mismatch = get_obj("alloc_node_mismatch");
                        slab->deactivate_bypass = get_obj("deactivate_bypass");
                        chdir("..");