diff mbox series

[v3,2/3] xen/sched: don't call sync_vcpu_execstate() in sched_unit_migrate_finish()

Message ID 20200514153614.2240-3-jgross@suse.com (mailing list archive)
State New, archived
Headers show
Series xen: Fix some bugs in scheduling | expand

Commit Message

Jürgen Groß May 14, 2020, 3:36 p.m. UTC
With support of core scheduling sched_unit_migrate_finish() gained a
call of sync_vcpu_execstate() as it was believed to be called as a
result of vcpu migration in any case.

In case of migrating a vcpu away from a physical cpu for a short period
of time ionly without ever being scheduled on the selected new cpu this
might not be true, so drop the call and let the lazy state syncing do
its job.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
V2:
- new patch
---
 xen/common/sched/core.c | 5 -----
 1 file changed, 5 deletions(-)

Comments

Dario Faggioli May 15, 2020, 3:55 p.m. UTC | #1
On Thu, 2020-05-14 at 17:36 +0200, Juergen Gross wrote:
> With support of core scheduling sched_unit_migrate_finish() gained a
> call of sync_vcpu_execstate() as it was believed to be called as a
> result of vcpu migration in any case.
> 
> In case of migrating a vcpu away from a physical cpu for a short
> period
> of time ionly without ever being scheduled on the selected new cpu
> this
> might not be true, so drop the call and let the lazy state syncing do
> its job.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>
Reviewed-by: Dario Faggioli <dfaggioli@suse.com>

Regards
Dario Faggioli May 25, 2020, 7:18 a.m. UTC | #2
On Thu, 2020-05-14 at 17:36 +0200, Juergen Gross wrote:
> With support of core scheduling sched_unit_migrate_finish() gained a
> call of sync_vcpu_execstate() as it was believed to be called as a
> result of vcpu migration in any case.
> 
> In case of migrating a vcpu away from a physical cpu for a short
> period
> of time ionly without ever being scheduled on the selected new cpu 
          ^
with this typo taken care of (I guess, upon commit)...

> this
> might not be true, so drop the call and let the lazy state syncing do
> its job.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>
Reviewed-by: Dario Faggioli <dfaggioli@suse.com>

Regards
Jan Beulich May 25, 2020, 1:12 p.m. UTC | #3
On 25.05.2020 09:18, Dario Faggioli wrote:
> On Thu, 2020-05-14 at 17:36 +0200, Juergen Gross wrote:
>> With support of core scheduling sched_unit_migrate_finish() gained a
>> call of sync_vcpu_execstate() as it was believed to be called as a
>> result of vcpu migration in any case.
>>
>> In case of migrating a vcpu away from a physical cpu for a short
>> period
>> of time ionly without ever being scheduled on the selected new cpu 
>           ^
> with this typo taken care of (I guess, upon commit)...
> 
>> this
>> might not be true, so drop the call and let the lazy state syncing do
>> its job.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>
> Reviewed-by: Dario Faggioli <dfaggioli@suse.com>

Hmm, I'm puzzled: This had gone in a week and a half ago with your
R-b sent on the 15th.

Jan
Dario Faggioli May 25, 2020, 1:26 p.m. UTC | #4
On Mon, 2020-05-25 at 15:12 +0200, Jan Beulich wrote:
> On 25.05.2020 09:18, Dario Faggioli wrote:
> > 
> > > Signed-off-by: Juergen Gross <jgross@suse.com>
> > > Reviewed-by: Jan Beulich <jbeulich@suse.com>
> > > 
> > Reviewed-by: Dario Faggioli <dfaggioli@suse.com>
> 
> Hmm, I'm puzzled: This had gone in a week and a half ago with your
> R-b sent on the 15th.
>
Well, at least I'm consistent! :-P

Being a bit more serious, yes I see this now. Unfortunately, it somehow
was stuck in the "wrong" folder in my MUA, making me think it was still
pending.

And of course I could have double checked either the tree or my sent
folder, but I didn't... Sorry for the noise. :-(

Regards
diff mbox series

Patch

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 5df66cbf9b..cb49a8bc02 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -1078,12 +1078,7 @@  static void sched_unit_migrate_finish(struct sched_unit *unit)
     sched_spin_unlock_double(old_lock, new_lock, flags);
 
     if ( old_cpu != new_cpu )
-    {
-        /* Vcpus are moved to other pcpus, commit their states to memory. */
-        for_each_sched_unit_vcpu ( unit, v )
-            sync_vcpu_execstate(v);
         sched_move_irqs(unit);
-    }
 
     /* Wake on new CPU. */
     for_each_sched_unit_vcpu ( unit, v )