Currently(AOSP 8.0), there are four type cpusets in /dev/cpuset, there are:
background foreground system-background top-app
For most cases, An app's state must belongs to one of them.
But what confuse me is that the frameworks does not force put an app(or, process for precise) to the cpuset which it belongs to.`setSchedulingGroup()` can do this job but I went though the source code and found out this method is not referenced anywhere.
The nanohub's writer force it's process run in /dev/cpuset/foreground/tasks in case the nanohub will run on a cpu which is for top app. BUT, if the actual top app is not set in /dev/cpuset/top-app/tasks, then this nanohub effort seems useless because the top app may not run on cpus which is defined in /dev/cpuset/top-app/cpus.
So my question is why not force a process to a cpuset which it belongs to?