Re: [RFC][PATCH] lru_add_drain_all() don't useschedule_on_each_cpu()

From: Andrew Morton
Date: Tue Oct 28 2008 - 16:47:56 EST


On Tue, 28 Oct 2008 09:25:31 -0500 (CDT)
Christoph Lameter <cl@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Mon, 27 Oct 2008, Andrew Morton wrote:
>
> > Can we fix that instead?
>
> How about this fix?
>
>
>
> Subject: Move migrate_prep out from under mmap_sem
>
> Move the migrate_prep outside the mmap_sem for the following system calls
>
> 1. sys_move_pages
> 2. sys_migrate_pages
> 3. sys_mbind()
>
> It really does not matter when we flush the lru. The system is free to add
> pages onto the lru even during migration which will make the page
> migration either skip the page (mbind, migrate_pages) or return a busy
> state (move_pages).
>

That looks nicer, thanks. Hopefully it fixes the
lockdep-warning/deadlock...

I guess we should document our newly discovered schedule_on_each_cpu()
problems before we forget about it and later rediscover it.

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