Re: [v3 PATCH 1/3] mm/mempolicy: cleanup nodemask intersection check for oom
From: Feng Tang <hidden>
Date: 2021-06-01 11:08:49
Also in:
lkml
On Tue, Jun 01, 2021 at 10:19:25AM +0200, Michal Hocko wrote:
On Mon 31-05-21 22:05:54, Feng Tang wrote:quoted
mempolicy_nodemask_intersects() is used in oom case to check if a task may have memory allocated on some memory nodes. As it's only used by OOM check, rename it to mempolicy_in_oom_domain() to reduce confusion. As only for 'bind' policy, the nodemask is a force requirement for from where to allocate memory, only do the intesection check for it, and return true for all other policies.I would slightly rephrase the above to " mempolicy_nodemask_intersects seem to be a general purpose mempolicy function. In fact it is partially tailored for the OOM purpose instead. The oom proper is the only existing user so rename the function to make that purpose explicit. While at it drop the MPOL_INTERLEAVE as those allocations never has a nodemask defined (see alloc_page_interleave) so this is a dead code and a confusing one because MPOL_INTERLEAVE is a hint rather than a hard requirement so it shouldn't be considered during the OOM. The final code can be reduced to a check for MPOL_BIND which is the only memory policy that is a hard requirement and thus relevant to a constrained OOM logic. "
This is much clearer, thanks! Will change this and the descrition in over-letter.
quoted
Suggested-by: Michal Hocko <mhocko@suse.com> Signed-off-by: Feng Tang <redacted>To the change itself Acked-by: Michal Hocko <mhocko@suse.com>
Thanks! - Feng