Re: [PATCH v4] cpuset: Enable cpuset controller in default hierarchy
From: Peter Zijlstra
Date: Sat Mar 10 2018 - 08:17:06 EST
On Fri, Mar 09, 2018 at 06:06:29PM -0500, Waiman Long wrote:
> So you are talking about sched_relax_domain_level and
That one I wouldn't be sad to see the back of.
> sched_load_balance.
This one, that's critical. And this is the perfect time to try and fix
the whole isolcpus issue.
The primary issue is that to make equivalent functionality available
through cpuset, we need to basically start all tasks outside the root
group.
The equivalent of isolcpus=xxx is a cgroup setup like:
root
/ \
system other
Where other has the @xxx cpus and system the remainder and
root.sched_load_balance = 0.
Back before cgroups (and the new workqueue stuff), we could've started
everything in the !root group, no worry. But now that doesn't work,
because a bunch of controllers can't deal with that and everything
cgroup expects the cgroupfs to be empty on boot.
It's one of my biggest regrets that I didn't 'fix' this before cgroups
came along.
> I have not removed any bits. I just haven't exposed
> them yet. It does seem like these 2 control knobs are useful from the
> scheduling perspective. Do we also need cpu_exclusive or just the two
> sched control knobs are enough?
I always forget if we need exclusive for load_balance to work; I'll
peruse the document/code.