[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH 3/3] sched/credit: Avoid doing cpu_pick calculation twice when deciding to move
On Wed, 2018-04-11 at 13:25 +0100, George Dunlap wrote: > In vcpu_acct(), we call _csched_cpu_pick() in order to decide whether > to consider migrating; but then we throw that result away and do it > again in context_saved() if we decide we do need to move. > > Instead, just initiate the migration and let the > vcpu_migrate_finish() > in context_saved() determine if it should make any changes. > I am ambivalent about this. In fact, I never liked the duplicated pick_cpu effort myself. Still, what happens right now is: - vcpu_acct() calls _csched_cpu_pick(); - if the returned cpu is equal to where the vcpu is currently running, nothing happens; - if it is different, we initiate a migration, and go through pick again. So, we have the duplicated call to pick. Initiating a migration means making the running vcpu not runnable and hence de-scheduling it (in favour of either idle or some other runnable vcpu). Then, in vcpu_migrate_finish(), we make it runnable again, put it back in a runqueue, and raise the SCHEDULE_SOFTIRQ on the pCPU, if appropriate. It's likely that the pCPU in question is different from the one where the vcpu was running when vccpu_acct() was invoked. After this patch, vcpu_acct() initiate a migration unconditionally. This means we avoid the overhead of the double call to pick, but we always go through de-scheduling current. This potentially means letting a runnable vcpu preempt current just for figuring out immediately after that current should not really migrate, and have it preempting the other vcpu again. So, AFAICT, we're saving some overhead, but introducing some other... Anyway, this patch is not really necessary for fixing the race, so I'd leave it aside for now. Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Software Engineer @ SUSE https://www.suse.com/ Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |