lkml.org 
[lkml]   [2012]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v3 5/5] cpusets, suspend: Save and restore cpusets during suspend/resume
On Tue, 15 May 2012, Peter Zijlstra wrote:

> > Not sure what you're disagreeing with, it only happens with
> > MPOL_F_STATIC_NODES or MPOL_F_RELATIVE_NODES and I've clearly defined the
> > behavior in the man page. I personally never had a use-case for
> > MPOL_F_RELATIVE_NODES but Paul Jackson asked that it be added for SGI when
> > we added mempolicy mode flags.
>
> So what you're saying is that:
>
> task t: set_mempolicy(,mask=2-3);
>
> add t to cpuset A
>
> A.mems = 0-1
> A.mems = 0-n
>
> At which point t will again have 2-3, right?
>

Depends on the mode which was omitted from your set_mempolicy().

When A.mems becomes 0-1, the task obviously also has a mempolicy of 0-1;
for MPOL_F_STATIC_NODES, the resulting nodemask of (0-1) & (2-3) is empty
so it falls back to the cpuset placement as required by the documentation,
and without MPOL_F_STATIC_NODES the nodemask is remapped onto the new set
which is also 0-1.

When A-mems is changed to 0-n, the task's mempolicy is either

- 2-3 again (in n >= 3) with MPOL_F_STATIC_NODES, the flag that means we
really want these specific nodes when allowed, or

- 0-1 still without MPOL_F_STATIC_NODES.

> Also, what does it mean to silently return to 2-3 after you've broken
> that promise by forcing it to 0-1 using cpusets?
>

This obviously isn't the typical usecase and I doubt moving tasks to a
cpuset with a disjoint set of allowed nodes ever happens in practice since
cpusets is for NUMA optimizations and its being inappropriately moved
around. MPOL_F_STATIC_NODES is typically used when mems are removed from
a cpuset and then subsequently added later. Doing
set_mempolicy(MPOL_INTERLEAVE, 0-3), attaching to cpuset.mems = 0-1, then
cpuset.mems = 0-3, would result in an interleave over 0-1 before
MPOL_F_STATIC_NODES was introduced. With the flag, however, the mems
becomes 0-3 once again.


\
 
 \ /
  Last update: 2012-05-16 00:21    [W:0.133 / U:0.400 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site