Messages in this thread | | | Date | Tue, 05 Aug 2008 13:30:43 -0700 | From | Max Krasnyansky <> | Subject | Re: [PATCH] cpuset: Rework sched domains and CPU hotplug handling (2.6.27-rc1) |
| |
Paul Jackson wrote: > Max wrote: >> Actually it is appropriate, and there is one more user of the >> arch_reinit_sched_domains() which is S390 topology updates. >> Those things (mc_power and topology updates) have to update domain flags based >> on the mc/smt power and current topology settings. > > Hmmm ... ok I suppose. > > Could we have the kernel/sched.c code, in this case, call the > kernel/cpuset.c routine async_rebuild_sched_domains(), rather > than the synchronous rebuild_sched_domains() call (in your naming) > which required details of the get_online_cpus() and put_online_cpus() > wrapping to leak into kernel/sched.c:arch_reinit_sched_domains() > routine?
It could I guess. But the questions is why ? I mean the only reason we've introduced workqueue is because lock nesting got too complicated. Otherwise in all those paths we're already in a process context and there is no need to schedule a workqueue.
I see your point about get_online_cpus() thing. But it is similar to partition_sched_domains() which is an external (from the sched pov) interface and must be called within get_online_cpus() ... put_online_cpus().
Max
| |