On Thu, 2016-06-02 at 22:30 +0800, Leo Yan wrote:
On Thu, Jun 02, 2016 at 01:18:09PM +0100, Jon Medhurst (Tixy) wrote:
A CPU's scheduler domain doesn't always have a parent e.g. if we only have one cluster present or enabled in the system.
kernel/sched/tune.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/tune.c b/kernel/sched/tune.c index 6edfd44..53c6de56 100644 --- a/kernel/sched/tune.c +++ b/kernel/sched/tune.c @@ -719,7 +719,7 @@ schedtune_add_cluster_nrg( * Assume we have EM data only at the CPU and * the upper CLUSTER level */
BUG_ON(!cpumask_equal(
BUG_ON(sd2->parent && !cpumask_equal( sched_group_cpus(sg), sched_group_cpus(sd2->parent->groups)
Just curious, this issue can be fixed by creating root schedule domain before Deitmar has meantioned. right?
I haven't followed any of the EAS development nor looked at the code in any detail, just been trying to fix up builds errors and OOPes I hit.
But it sounds like you're saying that if all domains were in a single tree with a single root then this patch wouldn't be needed. If so, I'd agree, as all nodes (except the root) would have a valid parent. Though you would need to make sure there was still a separate root note added even for the case where the system has a single CPU.
There would also be the consideration that any code walking the tree would have an extra node to traverse (don't know if that happens on any hot paths).
-- Tixy