lkml.org 
[lkml]   [2014]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: mm: slub: gpf in deactivate_slab
On Tue, 25 Mar 2014, Sasha Levin wrote:

> I have a lead on this. Consider the following:
>
> kmem_cache_alloc
> __slab_alloc
> local_irq_save()
> deactivate_slab
> __cmpxchg_double_slab
> slab_unlock
> __bit_spin_unlock
> preempt_enable
> [ Page Fault ]
>
> With this trace, it manifests as a "BUG: sleeping function called from invalid
> context at arch/x86/mm/fault.c" on a might_sleep() in the page fault handler
> (which is an issue on it's own), but I suspect it's also the cause of the
> trace
> above - preemption enabled and a race that removed the page.
>
> Could someone confirm please?

The preempt count is incremented earlier in bit_spin_lock so the
preempt_enable() should not do anything.



\
 
 \ /
  Last update: 2014-03-25 18:41    [W:0.185 / U:0.392 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site