Re: [RFC 3/4] mm, page_alloc: move cpuset seqcount checking to slowpath

From: Vlastimil Babka
Date: Wed Jan 18 2017 - 05:04:54 EST


On 01/18/2017 10:40 AM, Michal Hocko wrote:
On Tue 17-01-17 23:16:09, Vlastimil Babka wrote:
This is a preparation for the following patch to make review simpler. While
the primary motivation is a bug fix, this could also save some cycles in the
fast path.

I cannot say I would be happy about this patch :/ The code is still very
confusing and subtle. I really think we should get rid of
synchronization with the concurrent cpuset/mempolicy updates instead.
Have you considered that instead?

Not so thoroughly yet, but I already suspect it would be intrusive for stable. We could make copies of nodemask and mems_allowed and protect just the copying with seqcount, but that would mean overhead and stack space. Also we might try revert 682a3385e773 ("mm, page_alloc: inline the fast path of the zonelist iterator") ...