Messages in this thread | | | Date | Sun, 13 Jul 2008 19:42:52 +0200 | From | Ingo Molnar <> | Subject | Re: current linux-2.6.git: cpusets completely broken |
| |
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> The thing is, we should fix the top level code to never even > _consider_ an invalid CPU as a target, and that in turn should mean > that all the other code should be able to just totally ignore CPU > hotplug events.
agreed. We thought we could get away by hiding the "is the CPU dead" information in existing data structures (by shaping sched domains to never lead to a dead CPU) - but this method has proven itself fragile via a series of bugs.
It was one micro-optimization one too many. We should just accept the fact that the current model is not maintainable and add your extra (and trivial) cpu_active_map layer that protects against migrating to CPUs that are going down. [we'll basically introduce a "going down" state inbetween 'online' and 'offline']
And this will get rid of some other fragile trickery - because from that point on we dont have to be super-careful about the whole sequence of manipulating sched domains anymore. Cpusets can do whatever it wants, it wont be able to break hotplug+scheduling - and that's important for any functionality that is not used by default.
[ I dont think Dmitry will disagree with this notion all that much, it's just that his personal limit for calling an algorithm unmaintainable is probably a lot higher than normal :-) ]
Ingo
| |