lkml.org 
[lkml]   [2012]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] Extend mwait idle to optimize away CAL and RES interrupts to an idle CPU -v1
    From
    On Thu, Mar 1, 2012 at 5:37 PM, Suresh Siddha <suresh.b.siddha@intel.com> wrote:
    > 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?

    Yes. This case will be problematic. So, we still need struct
    create_idle work stuff even after percpu idle_task. Or was Ingo's
    suggestion to do something along the lines of - init any CPU's idle
    task from CPU 0's idle task?

    > same issue with the physical cpu-online case too right?
    Any fresh online at runtime. Yes.

    >
    > thanks,
    > suresh
    >


    \
     
     \ /
      Last update: 2012-03-02 03:03    [W:2.404 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site