Re: [RFC] cpuset: add interface to isolated cpus

From: Paul Jackson
Date: Tue Oct 24 2006 - 11:45:53 EST


pj wrote to Dinakar:
> The only twist to your patch I would like you to consider - instead
> of a 'sched_domain' flag marking where the partitions go, how about
> a flag that tells the kernel it is ok not to load balance tasks in
> a cpuset?

Dinakar - one possibility that might work well:

Proceed with the 'sched_domain' patch you are working on, as you planned.

(If you like, stop reading here ... <grin>.)

Then I can propose a patch on top of that, to flip the kernel-user API
to the "ok not to load balance" style I'm proposing. This patch would:
- leave your internal logic in place, as is,
- remove your 'sched_domain' flag from the visible API (keep it internally),
- add a 'cpu_must_load_balance' (default 1) flag to the API, and
- add a bit of logic to set, top down, your internal sched_domain flag,
based on the cpu_must_load_balance and parent sched_domain settings.

Then we can all see these two alternative API styles, your sched_domain
style and my cpu_must_load_balance style, and pick one (just by keeping
or tossing my extra patch.)

A couple of aspects of my cpu_must_load_balance style that I like:

* The batch scheduler can turn off requiring load balancing on its
inactive cpusets, without worrying about whether it has the right
(exclusive control) to do that or not.

* I figure that users will relate better to a choice of whether or not
they require cpu load balancing, than they will to the question of
where to partition scheduler domains.

Of course, if Nick succeeds on his mission to convince us that we can
do this automatically, then the above doesn't matter, and we'd need a
different patch altogether.

--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@xxxxxxx> 1.925.600.0401
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/