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

From: Gonglei
Date: Fri Oct 16 2015 - 04:56:50 EST


On 2015/10/16 16:08, Igor Mammedov wrote:
> On Fri, 16 Oct 2015 11:49:36 +0800
> Gonglei <arei.gonglei@xxxxxxxxxx> wrote:
>
>> On 2015/10/15 22:39, Christoph Lameter wrote:
>>> 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.
>>>
>>
>> It seems that the problem was fixed by Igor, right?
>> https://lkml.org/lkml/2014/3/6/257
> That might help.
> "stuck" CPU14 means that master CPU has given up on the attempt
> to online AP and tried to clean it up from different maps
> *but* AP is still running and that may lead to an unexpected
> behavior.
>
IIUC, this might be a sequence problem between BP processing and AP processing?

Regards,
-Gonglei

>>
>> Cced Igor Mammedov.
>>
>> Regards,
>> -Gonglei
>>
>


--
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/