mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-06 13:23:18 +00:00
mm, slub: print CPU id (and its node) on slab OOM
Depending on how remote_node_defrag_ratio is configured, allocations can end up in this path as a result of the local node being OOM, despite the allocation overall being unconstrained (node == -1). When we print a warning, printing the current CPU makes that situation more clear (i.e., you can immediately see which node's OOM status matters for the allocation at hand). Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Axel Rasmussen <axelrasmussen@google.com> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
This commit is contained in:
parent
4c39529663
commit
bf6b9e9ba0
@ -3416,14 +3416,15 @@ slab_out_of_memory(struct kmem_cache *s, gfp_t gfpflags, int nid)
|
||||
{
|
||||
static DEFINE_RATELIMIT_STATE(slub_oom_rs, DEFAULT_RATELIMIT_INTERVAL,
|
||||
DEFAULT_RATELIMIT_BURST);
|
||||
int cpu = raw_smp_processor_id();
|
||||
int node;
|
||||
struct kmem_cache_node *n;
|
||||
|
||||
if ((gfpflags & __GFP_NOWARN) || !__ratelimit(&slub_oom_rs))
|
||||
return;
|
||||
|
||||
pr_warn("SLUB: Unable to allocate memory on node %d, gfp=%#x(%pGg)\n",
|
||||
nid, gfpflags, &gfpflags);
|
||||
pr_warn("SLUB: Unable to allocate memory on CPU %u (of node %d) on node %d, gfp=%#x(%pGg)\n",
|
||||
cpu, cpu_to_node(cpu), nid, gfpflags, &gfpflags);
|
||||
pr_warn(" cache: %s, object size: %u, buffer size: %u, default order: %u, min order: %u\n",
|
||||
s->name, s->object_size, s->size, oo_order(s->oo),
|
||||
oo_order(s->min));
|
||||
|
Loading…
Reference in New Issue
Block a user