Re: [PATCH] cpuset: mm: Remove memory barrier damage from the pageallocator

From: David Rientjes
Date: Tue Mar 06 2012 - 18:31:41 EST


On Mon, 5 Mar 2012, Mel Gorman wrote:

> > It's very expensive even without memory barriers since the page allocator
> > wraps itself in {get,put}_mems_allowed() until a page or NULL is returned
> > and an update to current's set of allowed mems can stall indefinitely
> > trying to change the nodemask during this time.
>
> Hmm, this sounds problematic. Are you seeing a problem with the behaviour
> with the patch applied or the existing behaviour?
>

Sorry, yes, this is with the existing behavior prior to your patch. We
definitely need fixes for get_mems_allowed() because it's possible that a
write to cpuset.mems will never return even when trying to add nodes to
its nodemask in oom conditions if one of the cpuset's tasks is looping
forever in the page allocator.

I'll review your updated version posted from today.
--
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/