Re: [patch 2/2] cpusets: add interleave_over_allowed option

Andi Kleen
2007-10-29T21:08:42Z

On Monday 29 October 2007 20:35:58 Paul Jackson wrote:
> Lee wrote:
> > 2. As this thread progresses, you've discussed relaxing the requirement
> > that applications pass a valid subset of mems_allowed. I.e., something
> > that was illegal becomes legal. An API change, I think. But, a
> > backward compatible one, so that's OK, right? :-)
>
> The more I have stared at this, the more certain I've become that we
> need to make the mbind/mempolicy calls modal -- the default mode
> continues to interpret node numbers and masks just as these calls do
> now, and the alternative mode provides the so called "Choice B",
> which takes node numbers and masks as if the task owned the entire
> system, and then the kernel internally and automatically scrunches
> those masks down to whatever happens to be the current cpuset of
> the task.

So the user space asks for 8 nodes because it knows the machine
has that many from /sys and it only gets 4 if a cpuset says so? That's
just bad semantics. And is not likely to make the user programs happy.

I don't think you'll get around to teaching user space (or rather libnuma)
about cpusets and let it handle it.

>From the libnuma perspective the machine size would be essentially
current cpuset size.

On the syscall level I don't think it makes much sense to change though.

The alternative would be to throw out the complete cpuset concept and go for
virtual nodes inside containers with virtualized /sys.

-Andi