diff options
author | Vlastimil Babka <vbabka@suse.cz> | 2016-03-15 17:56:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-03-15 19:55:16 -0400 |
commit | 5b3810e5c6e1b9a1858464a53b5d72ee050bb918 (patch) | |
tree | 5bfa84a81f1bc4e7dd45214e76c46d3594c41e36 /mm | |
parent | 1414c7f4f7d72d138fff35f00151d15749b5beda (diff) |
mm, sl[au]b: print gfp_flags as strings in slab_out_of_memory()
We can now print gfp_flags more human-readable. Make use of this in
slab_out_of_memory() for SLUB and SLAB. Also convert the SLAB variant
it to pr_warn() along the way.
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slab.c | 10 | ||||
-rw-r--r-- | mm/slub.c | 4 |
2 files changed, 6 insertions, 8 deletions
@@ -1350,10 +1350,9 @@ slab_out_of_memory(struct kmem_cache *cachep, gfp_t gfpflags, int nodeid) | |||
1350 | if ((gfpflags & __GFP_NOWARN) || !__ratelimit(&slab_oom_rs)) | 1350 | if ((gfpflags & __GFP_NOWARN) || !__ratelimit(&slab_oom_rs)) |
1351 | return; | 1351 | return; |
1352 | 1352 | ||
1353 | printk(KERN_WARNING | 1353 | pr_warn("SLAB: Unable to allocate memory on node %d, gfp=%#x(%pGg)\n", |
1354 | "SLAB: Unable to allocate memory on node %d (gfp=0x%x)\n", | 1354 | nodeid, gfpflags, &gfpflags); |
1355 | nodeid, gfpflags); | 1355 | pr_warn(" cache: %s, object size: %d, order: %d\n", |
1356 | printk(KERN_WARNING " cache: %s, object size: %d, order: %d\n", | ||
1357 | cachep->name, cachep->size, cachep->gfporder); | 1356 | cachep->name, cachep->size, cachep->gfporder); |
1358 | 1357 | ||
1359 | for_each_kmem_cache_node(cachep, node, n) { | 1358 | for_each_kmem_cache_node(cachep, node, n) { |
@@ -1377,8 +1376,7 @@ slab_out_of_memory(struct kmem_cache *cachep, gfp_t gfpflags, int nodeid) | |||
1377 | 1376 | ||
1378 | num_slabs += active_slabs; | 1377 | num_slabs += active_slabs; |
1379 | num_objs = num_slabs * cachep->num; | 1378 | num_objs = num_slabs * cachep->num; |
1380 | printk(KERN_WARNING | 1379 | pr_warn(" node %d: slabs: %ld/%ld, objs: %ld/%ld, free: %ld\n", |
1381 | " node %d: slabs: %ld/%ld, objs: %ld/%ld, free: %ld\n", | ||
1382 | node, active_slabs, num_slabs, active_objs, num_objs, | 1380 | node, active_slabs, num_slabs, active_objs, num_objs, |
1383 | free_objects); | 1381 | free_objects); |
1384 | } | 1382 | } |
@@ -2236,8 +2236,8 @@ slab_out_of_memory(struct kmem_cache *s, gfp_t gfpflags, int nid) | |||
2236 | if ((gfpflags & __GFP_NOWARN) || !__ratelimit(&slub_oom_rs)) | 2236 | if ((gfpflags & __GFP_NOWARN) || !__ratelimit(&slub_oom_rs)) |
2237 | return; | 2237 | return; |
2238 | 2238 | ||
2239 | pr_warn("SLUB: Unable to allocate memory on node %d (gfp=0x%x)\n", | 2239 | pr_warn("SLUB: Unable to allocate memory on node %d, gfp=%#x(%pGg)\n", |
2240 | nid, gfpflags); | 2240 | nid, gfpflags, &gfpflags); |
2241 | pr_warn(" cache: %s, object size: %d, buffer size: %d, default order: %d, min order: %d\n", | 2241 | pr_warn(" cache: %s, object size: %d, buffer size: %d, default order: %d, min order: %d\n", |
2242 | s->name, s->object_size, s->size, oo_order(s->oo), | 2242 | s->name, s->object_size, s->size, oo_order(s->oo), |
2243 | oo_order(s->min)); | 2243 | oo_order(s->min)); |