Re: [PATCH 2/6] mm: mark all calls into the vmalloc subsystem as potentially sleeping

From: Christoph Hellwig
Date: Wed Oct 19 2016 - 10:21:49 EST


On Wed, Oct 19, 2016 at 12:15:41PM +0100, Chris Wilson wrote:
> On Tue, Oct 18, 2016 at 08:56:07AM +0200, Christoph Hellwig wrote:
> > This is how everyone seems to already use them, but let's make that
> > explicit.
>
> Ah, found an exception, vmapped stacks:

Oh, fun. So if we can't require vfree to be called from process context
we also can't use a mutex to wait for the vmap flushing. Given that we
free stacks from the scheduler context switch I also fear there is no
good way to get a sleepable context there.

The only other idea I had was to use vmap_area_lock for the protection
that purge_lock currently provides, but that would require some serious
refactoring to avoid recursive locking first.