提交 90993cdd 编写于 作者: M Marcelo Tosatti

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: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
上级 4d8b81ab
...@@ -573,23 +573,18 @@ config PARAVIRT_TIME_ACCOUNTING ...@@ -573,23 +573,18 @@ config PARAVIRT_TIME_ACCOUNTING
source "arch/x86/xen/Kconfig" source "arch/x86/xen/Kconfig"
config KVM_CLOCK
bool "KVM paravirtualized clock"
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 config KVM_GUEST
bool "KVM Guest support" bool "KVM Guest support (including kvmclock)"
select PARAVIRT
select PARAVIRT select PARAVIRT
select PARAVIRT_CLOCK
default y if PARAVIRT_GUEST
---help--- ---help---
This option enables various optimizations for running under the KVM 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" source "arch/x86/lguest/Kconfig"
......
...@@ -102,14 +102,14 @@ struct kvm_vcpu_pv_apf_data { ...@@ -102,14 +102,14 @@ struct kvm_vcpu_pv_apf_data {
extern void kvmclock_init(void); extern void kvmclock_init(void);
extern int kvm_register_clock(char *txt); extern int kvm_register_clock(char *txt);
#ifdef CONFIG_KVM_CLOCK #ifdef CONFIG_KVM_GUEST
bool kvm_check_and_clear_guest_paused(void); bool kvm_check_and_clear_guest_paused(void);
#else #else
static inline bool kvm_check_and_clear_guest_paused(void) static inline bool kvm_check_and_clear_guest_paused(void)
{ {
return false; return false;
} }
#endif /* CONFIG_KVMCLOCK */ #endif /* CONFIG_KVM_GUEST */
/* This instruction is vmcall. On non-VT architectures, it will generate a /* This instruction is vmcall. On non-VT architectures, it will generate a
* trap that we will then rewrite to the appropriate instruction. * trap that we will then rewrite to the appropriate instruction.
......
...@@ -81,8 +81,7 @@ obj-$(CONFIG_DEBUG_RODATA_TEST) += test_rodata.o ...@@ -81,8 +81,7 @@ obj-$(CONFIG_DEBUG_RODATA_TEST) += test_rodata.o
obj-$(CONFIG_DEBUG_NX_TEST) += test_nx.o obj-$(CONFIG_DEBUG_NX_TEST) += test_nx.o
obj-$(CONFIG_DEBUG_NMI_SELFTEST) += nmi_selftest.o obj-$(CONFIG_DEBUG_NMI_SELFTEST) += nmi_selftest.o
obj-$(CONFIG_KVM_GUEST) += kvm.o obj-$(CONFIG_KVM_GUEST) += kvm.o kvmclock.o
obj-$(CONFIG_KVM_CLOCK) += kvmclock.o
obj-$(CONFIG_PARAVIRT) += paravirt.o paravirt_patch_$(BITS).o obj-$(CONFIG_PARAVIRT) += paravirt.o paravirt_patch_$(BITS).o
obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= paravirt-spinlocks.o obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= paravirt-spinlocks.o
obj-$(CONFIG_PARAVIRT_CLOCK) += pvclock.o obj-$(CONFIG_PARAVIRT_CLOCK) += pvclock.o
......
...@@ -397,9 +397,7 @@ void kvm_disable_steal_time(void) ...@@ -397,9 +397,7 @@ void kvm_disable_steal_time(void)
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
static void __init kvm_smp_prepare_boot_cpu(void) static void __init kvm_smp_prepare_boot_cpu(void)
{ {
#ifdef CONFIG_KVM_CLOCK
WARN_ON(kvm_register_clock("primary cpu clock")); WARN_ON(kvm_register_clock("primary cpu clock"));
#endif
kvm_guest_cpu_init(); kvm_guest_cpu_init();
native_smp_prepare_boot_cpu(); native_smp_prepare_boot_cpu();
} }
......
...@@ -957,7 +957,7 @@ void __init setup_arch(char **cmdline_p) ...@@ -957,7 +957,7 @@ void __init setup_arch(char **cmdline_p)
initmem_init(); initmem_init();
memblock_find_dma_reserve(); memblock_find_dma_reserve();
#ifdef CONFIG_KVM_CLOCK #ifdef CONFIG_KVM_GUEST
kvmclock_init(); kvmclock_init();
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册