Re: [PATCH] oom: print nodemask in the oom report

From: Vlastimil Babka
Date: Wed Oct 05 2016 - 05:51:33 EST


On 10/04/2016 05:12 PM, Michal Hocko wrote:

Ah, I wasn't clear. What I questioned is the fallback to cpusets for NULL
nodemask:

nodemask_t *nm = (oc->nodemask) ? oc->nodemask :
&cpuset_current_mems_allowed;

Well no nodemask means there is no mempolicy so either all nodes can be
used or they are restricted by the cpuset. cpuset_current_mems_allowed is
node_states[N_MEMORY] if there is no cpuset so I believe we are printing
the correct information. An alternative would be either not print
anything if there is no nodemask or print node_states[N_MEMORY]
regardless the cpusets. The first one is quite ugly while the later
might be confusing I guess.

So I thought it would be useful to distinguish that mempolicy/nodemask had no restriction (e.g. NULL), vs restriction that happens to be the very same as cpuset_current_mems_allowed. With your patch we can just guess, if both are printed as the same sets. But I guess there's not much value in that and the most important point is that we can determine the resulting combination (intersection) of both kinds of restrictions from the report, which indeed we can after your patch.

Thanks,
Vlastimil