Messages in this thread Patch in this message | | | From | Vitaly Kuznetsov <> | Subject | Re: [PATCH v3] KVM: X86: Just one leader to trigger kvmclock sync request | Date | Mon, 02 Mar 2020 14:01:06 +0100 |
| |
Wanpeng Li <kernellwp@gmail.com> writes:
> From: Wanpeng Li <wanpengli@tencent.com> > > In the progress of vCPUs creation, it queues a kvmclock sync worker to the global > workqueue before each vCPU creation completes. The workqueue subsystem guarantees > not to queue the already queued work, however, we can make the logic more clear by > make just one leader to trigger this kvmclock sync request and save on cacheline > boucing due to test_and_set_bit. > > Signed-off-by: Wanpeng Li <wanpengli@tencent.com> > --- > v2 -> v3: > * update patch description > v1 -> v2: > * check vcpu->vcpu_idx > > arch/x86/kvm/x86.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index fb5d64e..79bc995 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -9390,8 +9390,9 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu) > if (!kvmclock_periodic_sync) > return; > > - schedule_delayed_work(&kvm->arch.kvmclock_sync_work, > - KVMCLOCK_SYNC_PERIOD); > + if (vcpu->vcpu_idx == 0) > + schedule_delayed_work(&kvm->arch.kvmclock_sync_work, > + KVMCLOCK_SYNC_PERIOD);
I would've merged this new check with !kvmclock_periodic_sync above making it more obvious when the work is scheduled
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 5de200663f51..93550976f991 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -9389,11 +9389,9 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu) mutex_unlock(&vcpu->mutex); - if (!kvmclock_periodic_sync) - return; - - schedule_delayed_work(&kvm->arch.kvmclock_sync_work, - KVMCLOCK_SYNC_PERIOD); + if (vcpu->vcpu_idx == 0 && kvmclock_periodic_sync) + schedule_delayed_work(&kvm->arch.kvmclock_sync_work, + KVMCLOCK_SYNC_PERIOD); }
> } > > void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu)
With or without the change mentioned above, Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com> -- Vitaly
| |