On Tue, May 10, 2016 at 11:39:18AM +0100, Patrick Bellasi wrote:
[...]
I randomly picked up one kernel thread "1937" of kworker, not sure if it's related with this or not? Does this means all kernel threads cannot be set for SchedTune's group or just it's special for "kworker" thread?
Yes and no, some kernel threads are CPU pinned thus for example using a cpuset CGroup you cannot move it, but you get an error on the write syscall.
However, I do NOT expect this limitation to be there when SchedTune CGroups are in use, we do not check any task specific attribute when moving them on boost groups. Unless, there are some "assumptions" in the CGroup core code which does not allow to move kthreads into subgroups...
USER PID PPID VSZ RSS WCHAN PC S NAME root 1937 2 0 0 0 0 S [kworker/2:2]
I've just tryied on a Chromebook and yes, for all kworker I get a: "write error: Invalid argument" for all kworker, both writing on cgroup.procs as well as tasks.
This requires to be better investigated in the CGroup core code because it's inhibiting the boosting of kernel threads :-(
So actually my question should be for "kworker threads cannot be set for SchedTune CGroups", it's no matther with root's permission at all.
Just want to clarify at here.
Just one minor note, cgroup.procs reports only TGIDs. If 1937 is a thread of a main process, you should find it listed just under tasks. Thus, usually it's better to check using:
hikey:/ $ cat /sys/fs/cgroup/stune/performance/tasks
Yes, exactly. I tried manually launch tasks, this method can work well:
hikey:/ $ while true; do echo "test" > /dev/zero; sleep 2; done & [1] 2722 hikey:/ $ echo 2722 > /sys/fs/cgroup/stune/performance/tasks
hikey:/ $ while true; do echo "test" > /dev/zero; sleep 2; done & [2] 2726 hikey:/ $ echo 2726 > /sys/fs/cgroup/stune/performance/cgroup.procs
hikey:/ $ cat /sys/fs/cgroup/stune/performance/tasks 2722 2726
Ok, it seems to be working as expected.
However, do you really need to boost kthreads? In that case we have to look at the reasons for them not being moved into a boost group.
No, currently have no obvious user case for boosting kthreads.
Thanks, Leo Yan