Commit b34de572 authored by Wanpeng Li's avatar Wanpeng Li Committed by Paolo Bonzini
Browse files

KVM: X86: trigger kvmclock sync request just once on VM creation



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
making just one leader to trigger this kvmclock sync request, and also save on
cacheline bouncing caused by test_and_set_bit.

Signed-off-by: default avatarWanpeng Li <wanpengli@tencent.com>
Reviewed-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 4abaffce
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -9335,9 +9335,7 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)

	mutex_unlock(&vcpu->mutex);

	if (!kvmclock_periodic_sync)
		return;

	if (kvmclock_periodic_sync && vcpu->vcpu_idx == 0)
		schedule_delayed_work(&kvm->arch.kvmclock_sync_work,
						KVMCLOCK_SYNC_PERIOD);
}