On Mon, 2015-09-21 at 13:50 +0000, Wu, Feng wrote: > > > -----Original Message----- > > From: Dario Faggioli [mailto:dario.faggi...@citrix.com]
> > Note that, in case of preemptions, we are switching from a non-idle > > vcpu to another, non-idle, vcpu, so lazy context switching to the > > idle > > vcpu should not have much to do with this case... > > So do you mean in preemptions, we cannot switch from non-idle to idle > or > Idle to non-idle, i.e, we can only switch from non-idle to non-idle? > That's what I meant. It's the definition of 'preemption' and of 'idle task/vcpu', AFICT. I mean, the idle vcpu has the lowest possible priority ever, so it can't really preempt anyone. OTOH, if the idle vcpu is running, that means there weren't any active vcpus because, e.g., all were blocked; therefore, any active vcpu wanting to run would have to wake up (and hence go throught the proper wake up logic) before trying to preempt idle. There is one possible caveat: tasklets. In fact (as you can check yourself by looking, in the code, for tasklet_work_scheduled), it is possible that we force the idle vcpu to execute, even when we have active and runnable vcpus, to let it process tasklets. I'm not really sure whether this could be a problem for you or not, can you have a look (and/or, a try) and report back? Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel