The following is just a wild idea.
On systems using cpusets to setup scheduler domains (anything more
elaborate than the default of a single, system-wide, domain) have a
special purpose thread sit around, that does nothing except rebuild
sched domains on demand.
If this rebuild thread was the -only- way that sched domains were
allowed to be rebuilt, and if this rebuild was done -asynchronously-
sometime shortly after requested, without any error or status feedback,
then it would seem to simplify the locking issues.
I would guess that any system big enough to have a non-default, cpuset
determined, sched domain configuration is big enough to not mind one
more thread sitting around, doing nothing most of the time.
If the above is a really stupid idea, have fun taking out your
agression on it ;).
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.940.382.4214
--