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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>