Re: [BUG?] kernel OOPS at kmem_cache_alloc_node() because of smp_processor_id()

From: Christoph Lameter
Date: Thu Oct 15 2015 - 10:39:24 EST


On Thu, 15 Oct 2015, Gonglei (Arei) wrote:

> [ 0.016000] Call Trace:
> [ 0.016000] [<ffffffff810061dc>] dump_trace+0x6c/0x2d0
> [ 0.016000] [<ffffffff81394288>] dump_stack+0x69/0x71
> [ 0.016000] [<ffffffff81394308>] panic+0x78/0x199
> [ 0.016000] [<ffffffff81050fff>] do_exit+0x26f/0x360
> [ 0.016000] [<ffffffff813980a1>] oops_end+0xe1/0xf0
> [ 0.016000] [<ffffffff8102d955>] __bad_area_nosemaphore+0x155/0x230
> [ 0.016000] [<ffffffff813972ef>] page_fault+0x1f/0x30
> [ 0.016000] [<ffffffff810ed93f>] kmem_cache_alloc_node+0xbf/0x140
> [ 0.016000] [<ffffffff811dc176>] alloc_cpumask_var_node+0x16/0x70
> [ 0.016000] [<ffffffff81019888>] native_send_call_func_ipi+0x18/0xf0
> [ 0.016000] [<ffffffff810783ee>] smp_call_function_many+0x1ae/0x250
> [ 0.016000] [<ffffffff810784b0>] smp_call_function+0x20/0x30
> [ 0.016000] [<ffffffff8101580a>] set_mtrr+0x5a/0x140
> [ 0.016000] [<ffffffff8138ef17>] smp_callin+0xf0/0x1b4
> [ 0.016000] [<ffffffff8138efe9>] start_secondary+0xe/0xb5

This happened during IPI processing?

> crash> p cache_cache

Arg. This is the SLAB allocator. You cannot enable debugging without
rebuilding the kernel with CONFIG_SLAB_DEBUG.

> smp_processor_id() return 14, the CPU14, but the CPU14 is *stuck*, so cache=
> p->array[14] is NULL,
> why did this situation happen? And cause NULL pointer accessing? Is this a =
> kernel bug?

Its likely a bug in some obscure code in a driver that corrupted memory or
messed up the way memory was handled. set_mtrr()? What was going on at the
time? A special graphics driver being loaded? That could cause issues.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/