[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] xen: idle_loop: either deal with tasklets or go idle
>>> On 20.06.17 at 15:00, <dario.faggioli@xxxxxxxxxx> wrote: > In fact, there are two kinds of tasklets: vCPU and > softirq context. When we want to do vCPU context tasklet > work, we force the idle vCPU (of a particular pCPU) into > execution, and run it from there. > > This means there are two possible reasons for choosing > to run the idle vCPU: > 1) we want a pCPU to go idle, > 2) we want to run some vCPU context tasklet work. > > If we're in case 2), it does not make sense to even > try to go idle (as the check will _always_ fail). > > This patch rearranges the code of the body of idle > vCPUs, so that we actually check whether we are in > case 1) or 2), and act accordingly. > > As a matter of fact, this also means that we do not > check if there's any tasklet work to do after waking > up from idle. This is not a problem, because: > a) for softirq context tasklets, if any is queued > "during" wakeup from idle, TASKLET_SOFTIRQ is > raised, and the call to do_softirq() (which is still > happening *after* the wakeup) will take care of it; > b) for vCPU context tasklets, if any is queued "during" > wakeup from idle, SCHEDULE_SOFTIRQ is raised and > do_softirq() (happening after the wakeup) calls > the scheduler. The scheduler sees that there is > tasklet work pending and confirms the idle vCPU > in execution, which then will get to execute > do_tasklet(). > > Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> Except for ARM bits Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |