Merge branch 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux
* 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux: tools, slub: Fix off-by-one buffer corruption after readlink() call slub: Discard slab page when node partial > minimum partial number slub: correct comments error for per cpu partial mm: restrict access to slab files under procfs and sysfs slub: Code optimization in get_partial_node() slub: doc: update the slabinfo.c file path slub: explicitly document position of inserting slab to partial list slub: update slabinfo tools to report per cpu partial list statistics slub: per cpu cache for partial pages slub: return object pointer from get_partial() / new_slab(). slub: pass kmem_cache_cpu pointer to get_partial() slub: Prepare inuse field in new_slab() slub: Remove useless statements in __slab_alloc slub: free slabs without holding locks slub: use print_hex_dump slab: use print_hex_dump
This commit is contained in:
@@ -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("..");
|
||||
|
Reference in New Issue
Block a user