All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/4] fix premature OOM due to cpuset races
@ 2017-01-17 22:16 ` Vlastimil Babka
  0 siblings, 0 replies; 46+ messages in thread
From: Vlastimil Babka @ 2017-01-17 22:16 UTC (permalink / raw)
  To: Mel Gorman, Ganapatrao Kulkarni
  Cc: Michal Hocko, linux-kernel, linux-mm, Vlastimil Babka

This is my attempt to fix the recent report based on LTP cpuset stress test [1].
Patches are based on 4.9 as that was the initial reported version, but later
it was reported that this problem exists since 4.7. We will probably want to
go to stable with this, as triggering OOMs is not nice. That's why the patches
try to be not too intrusive.

Longer-term we might try to think how to fix the cpuset mess in a better and
less error prone way. I was for example very surprised to learn, that cpuset
updates change not only task->mems_allowed, but also nodemask of mempolicies.
Until now I expected the parameter to alloc_pages_nodemask() to be stable.
I wonder why do we then treat cpusets specially in get_page_from_freelist()
and distinguish HARDWALL etc, when there's unconditional intersection between
mempolicy and cpuset. I would expect the nodemask adjustment for saving
overhead in g_p_f(), but that clearly doesn't happen in the current form.
So we have both crazy complexity and overhead, AFAICS.

[1] https://lkml.kernel.org/r/CAFpQJXUq-JuEP=QPidy4p_=FN0rkH5Z-kfB4qBvsf6jMS87Edg@mail.gmail.com

Vlastimil Babka (4):
  mm, page_alloc: fix check for NULL preferred_zone
  mm, page_alloc: fix fast-path race with cpuset update or removal
  mm, page_alloc: move cpuset seqcount checking to slowpath
  mm, page_alloc: fix premature OOM when racing with cpuset mems update

 mm/page_alloc.c | 58 ++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 37 insertions(+), 21 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2017-01-18 16:24 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-17 22:16 [RFC 0/4] fix premature OOM due to cpuset races Vlastimil Babka
2017-01-17 22:16 ` Vlastimil Babka
2017-01-17 22:16 ` [RFC 1/4] mm, page_alloc: fix check for NULL preferred_zone Vlastimil Babka
2017-01-17 22:16   ` Vlastimil Babka
2017-01-18  9:31   ` Michal Hocko
2017-01-18  9:31     ` Michal Hocko
2017-01-18  9:45     ` Vlastimil Babka
2017-01-18  9:45       ` Vlastimil Babka
2017-01-18  9:53       ` Michal Hocko
2017-01-18  9:53         ` Michal Hocko
2017-01-18  9:45   ` Mel Gorman
2017-01-18  9:45     ` Mel Gorman
2017-01-17 22:16 ` [RFC 2/4] mm, page_alloc: fix fast-path race with cpuset update or removal Vlastimil Babka
2017-01-17 22:16   ` Vlastimil Babka
2017-01-18  9:34   ` Michal Hocko
2017-01-18  9:34     ` Michal Hocko
2017-01-18  9:46   ` Mel Gorman
2017-01-18  9:46     ` Mel Gorman
2017-01-17 22:16 ` [RFC 3/4] mm, page_alloc: move cpuset seqcount checking to slowpath Vlastimil Babka
2017-01-17 22:16   ` Vlastimil Babka
2017-01-18  7:22   ` Hillf Danton
2017-01-18  7:22     ` Hillf Danton
2017-01-18  9:26     ` Vlastimil Babka
2017-01-18  9:26       ` Vlastimil Babka
2017-01-18  9:40   ` Michal Hocko
2017-01-18  9:40     ` Michal Hocko
2017-01-18  9:48     ` Vlastimil Babka
2017-01-18  9:48       ` Vlastimil Babka
2017-01-18  9:55       ` Michal Hocko
2017-01-18  9:55         ` Michal Hocko
2017-01-18 10:03   ` Mel Gorman
2017-01-18 10:03     ` Mel Gorman
2017-01-17 22:16 ` [RFC 4/4] mm, page_alloc: fix premature OOM when racing with cpuset mems update Vlastimil Babka
2017-01-17 22:16   ` Vlastimil Babka
2017-01-18  7:12   ` Hillf Danton
2017-01-18  7:12     ` Hillf Danton
2017-01-18  9:32     ` Vlastimil Babka
2017-01-18  9:32       ` Vlastimil Babka
2017-01-18 10:08   ` Mel Gorman
2017-01-18 10:08     ` Mel Gorman
2017-01-18  9:19 ` [RFC 0/4] fix premature OOM due to cpuset races Michal Hocko
2017-01-18  9:19   ` Michal Hocko
2017-01-18 16:20 ` [RFC 5/4] mm, page_alloc: fix premature OOM due to vma mempolicy update Vlastimil Babka
2017-01-18 16:20   ` Vlastimil Babka
2017-01-18 16:23   ` Vlastimil Babka
2017-01-18 16:23     ` Vlastimil Babka

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.