Thread (13 messages) 13 messages, 3 authors, 2021-06-01

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help