Re: [RFC 1/2] cgroup, kthread: do not allow moving kthreads out of the root cgroup

From: David Rientjes
Date: Thu Oct 12 2017 - 17:57:37 EST


On Thu, 12 Oct 2017, Peter Zijlstra wrote:

> > Attaching kernel threads to a non-root cgroup is generally a bad
> > idea. Kernel threads are generally performing the work required
> > to keep the system working and healthy, and applying various
> > resource limits may affect system stability and performance.
> >
> > Some examples of dangerous behavior are limiting CPU time available
> > to rcu stuff, memory limits applied to almost all kthreads, etc.
> >
> > To prevent this dangerous behavior, let's deny all kthread
> > movements between cgroups. Right now only kthreads bounded
> > to CPUs are not allowed to move, which is not sufficient.
> >
> > If there are examples of kthreads which can be limited,
> > and it's guaranteed to be safe, we can allow explicit
> > exceptions further.
>
> The traditional use-case is stuffing all the unbound kthreads into a
> system cpuset in order to limit 'crap' on the rest of the CPUs.
> This setup is typically found in HPC and RT environments.
>
> So NAK. This needs to stay working in as far as it still works.
>

+1, I originally introduced PF_THREAD_BOUND to cpusets in 2008 to prevent
migration threads and software watchdog threads from being able to access
the cpus they work on. We also move unbound kthreads to a system cpuset.