Messages in this thread | | | Subject | Re: [PATCH] Extend mwait idle to optimize away CAL and RES interrupts to an idle CPU -v1 | From | Suresh Siddha <> | Date | Thu, 01 Mar 2012 17:37:37 -0800 |
| |
On Thu, 2012-03-01 at 17:35 -0800, Venki Pallipadi wrote: > On Thu, Mar 1, 2012 at 5:28 PM, Suresh Siddha <suresh.b.siddha@intel.com> wrote: > > On Thu, 2012-03-01 at 16:33 -0800, Venki Pallipadi wrote: > >> > > >> > fork_idle() should also make sure it does not schedule the child > >> > thread: thus we'd also be able to further simplify smpboot.c and > >> > get rid of all that extremely ugly 'struct create_idle' > >> > gymnastics in smpboot.c. > >> > >> But not this. I am not sure where fork_idle results in resched of the child. > >> As I saw it, fork_idle calls init_idle and that sets the affinity of > >> idle_task to target CPU. So, reschedule should not be a problem. What > >> am I missing here? > > > > I think Ingo is referring to the fact that we can't use kthread_create() > > here and hence we were relying on fork_idle(). > > > >> Also, I tried this silly test patch (Cut and paste... Sorry) and it > >> seemed to work fine both with and without CPU hotplug. > >> > > > > I don't think we can do this today, as we need to make sure we have the > > correct current context. With dynamic cpu hotplug, current context can > > be any process and hence we were depending on the schedule_work() > > context. > > > > schedule_work() is only done at boot time. In case of dynamic cpu > hotplug, we skip the whole fork_idle as we already have the task > struct and just do init_idle(). >
What happens if we boot with "maxcpus=" and later online the remaining cpu's? same issue with the physical cpu-online case too right?
thanks, suresh
| |