mirror of https://gitee.com/openkylin/linux.git
x86: KVM guest: merge CONFIG_KVM_CLOCK into CONFIG_KVM_GUEST
The distinction between CONFIG_KVM_CLOCK and CONFIG_KVM_GUEST is not so clear anymore, as demonstrated by recent bugs caused by poor handling of on/off combinations of these options. Merge CONFIG_KVM_CLOCK into CONFIG_KVM_GUEST. Reported-By: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
4d8b81abc4
commit
90993cdd18
|
@ -573,23 +573,18 @@ config PARAVIRT_TIME_ACCOUNTING
|
|||
|
||||
source "arch/x86/xen/Kconfig"
|
||||
|
||||
config KVM_CLOCK
|
||||
bool "KVM paravirtualized clock"
|
||||
config KVM_GUEST
|
||||
bool "KVM Guest support (including kvmclock)"
|
||||
select PARAVIRT
|
||||
select PARAVIRT
|
||||
select PARAVIRT_CLOCK
|
||||
---help---
|
||||
Turning on this option will allow you to run a paravirtualized clock
|
||||
when running over the KVM hypervisor. Instead of relying on a PIT
|
||||
(or probably other) emulation by the underlying device model, the host
|
||||
provides the guest with timing infrastructure such as time of day, and
|
||||
system time
|
||||
|
||||
config KVM_GUEST
|
||||
bool "KVM Guest support"
|
||||
select PARAVIRT
|
||||
default y if PARAVIRT_GUEST
|
||||
---help---
|
||||
This option enables various optimizations for running under the KVM
|
||||
hypervisor.
|
||||
hypervisor. It includes a paravirtualized clock, so that instead
|
||||
of relying on a PIT (or probably other) emulation by the
|
||||
underlying device model, the host provides the guest with
|
||||
timing infrastructure such as time of day, and system time
|
||||
|
||||
source "arch/x86/lguest/Kconfig"
|
||||
|
||||
|
|
|
@ -102,14 +102,14 @@ struct kvm_vcpu_pv_apf_data {
|
|||
extern void kvmclock_init(void);
|
||||
extern int kvm_register_clock(char *txt);
|
||||
|
||||
#ifdef CONFIG_KVM_CLOCK
|
||||
#ifdef CONFIG_KVM_GUEST
|
||||
bool kvm_check_and_clear_guest_paused(void);
|
||||
#else
|
||||
static inline bool kvm_check_and_clear_guest_paused(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif /* CONFIG_KVMCLOCK */
|
||||
#endif /* CONFIG_KVM_GUEST */
|
||||
|
||||
/* This instruction is vmcall. On non-VT architectures, it will generate a
|
||||
* trap that we will then rewrite to the appropriate instruction.
|
||||
|
|
|
@ -81,8 +81,7 @@ obj-$(CONFIG_DEBUG_RODATA_TEST) += test_rodata.o
|
|||
obj-$(CONFIG_DEBUG_NX_TEST) += test_nx.o
|
||||
obj-$(CONFIG_DEBUG_NMI_SELFTEST) += nmi_selftest.o
|
||||
|
||||
obj-$(CONFIG_KVM_GUEST) += kvm.o
|
||||
obj-$(CONFIG_KVM_CLOCK) += kvmclock.o
|
||||
obj-$(CONFIG_KVM_GUEST) += kvm.o kvmclock.o
|
||||
obj-$(CONFIG_PARAVIRT) += paravirt.o paravirt_patch_$(BITS).o
|
||||
obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= paravirt-spinlocks.o
|
||||
obj-$(CONFIG_PARAVIRT_CLOCK) += pvclock.o
|
||||
|
|
|
@ -397,9 +397,7 @@ void kvm_disable_steal_time(void)
|
|||
#ifdef CONFIG_SMP
|
||||
static void __init kvm_smp_prepare_boot_cpu(void)
|
||||
{
|
||||
#ifdef CONFIG_KVM_CLOCK
|
||||
WARN_ON(kvm_register_clock("primary cpu clock"));
|
||||
#endif
|
||||
kvm_guest_cpu_init();
|
||||
native_smp_prepare_boot_cpu();
|
||||
}
|
||||
|
|
|
@ -957,7 +957,7 @@ void __init setup_arch(char **cmdline_p)
|
|||
initmem_init();
|
||||
memblock_find_dma_reserve();
|
||||
|
||||
#ifdef CONFIG_KVM_CLOCK
|
||||
#ifdef CONFIG_KVM_GUEST
|
||||
kvmclock_init();
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue