QEMU's kvmclock device is only created when KVM PV feature bits for kvmclock (KVM_FEATURE_CLOCKSOURCE/KVM_FEATURE_CLOCKSOURCE2) are exposed to the guest. With 'kvm=off' cpu flag the device is not created and we don't call KVM_GET_CLOCK/KVM_SET_CLOCK upon migration. It was reported that without these call at least Hyper-V TSC page clocksouce (which can be enabled independently) gets broken after migration. Switch to creating kvmclock QEMU device unconditionally, it seems to always make sense to call KVM_GET_CLOCK/KVM_SET_CLOCK on migration. Use KVM_CAP_ADJUST_CLOCK check instead of CPUID feature bits. Reported-by: Antoine Damhet <antoine.damhet@blade-group.com> Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Message-Id: <20200922151934.899555-1-vkuznets@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
			
				
	
	
		
			29 lines
		
	
	
		
			500 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			500 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * QEMU KVM support, paravirtual clock device
 | 
						|
 *
 | 
						|
 * Copyright (C) 2011 Siemens AG
 | 
						|
 *
 | 
						|
 * Authors:
 | 
						|
 *  Jan Kiszka        <jan.kiszka@siemens.com>
 | 
						|
 *
 | 
						|
 * This work is licensed under the terms of the GNU GPL version 2.
 | 
						|
 * See the COPYING file in the top-level directory.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef HW_KVM_CLOCK_H
 | 
						|
#define HW_KVM_CLOCK_H
 | 
						|
 | 
						|
#ifdef CONFIG_KVM
 | 
						|
 | 
						|
void kvmclock_create(bool create_always);
 | 
						|
 | 
						|
#else /* CONFIG_KVM */
 | 
						|
 | 
						|
static inline void kvmclock_create(bool create_always)
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
#endif /* !CONFIG_KVM */
 | 
						|
 | 
						|
#endif
 |