Glauber Costa
2008-Apr-16 16:59 UTC
[PATCH] kvm: move kvmclock initialization inside kvm_guest_init
It makes no sense for the clock initialization to be
hanging around in setup_32.c when we have a generic kvm guest
initialization function available. So, we move kvmclock_init()
inside such a function, leading to a cleaner code.
Signed-off-by: Glauber Costa <gcosta at redhat.com>
---
arch/x86/kernel/kvm.c | 2 ++
arch/x86/kernel/setup_32.c | 4 ----
include/linux/kvm_para.h | 5 +++++
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index d9121f9..5cad368 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -210,6 +210,8 @@ static void paravirt_ops_setup(void)
pv_info.name = "KVM";
pv_info.paravirt_enabled = 1;
+ kvmclock_init();
+
if (kvm_para_has_feature(KVM_FEATURE_NOP_IO_DELAY))
pv_cpu_ops.io_delay = kvm_io_delay;
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c
index 65f3a23..029350c 100644
--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -771,10 +771,6 @@ void __init setup_arch(char **cmdline_p)
max_low_pfn = setup_memory();
-#ifdef CONFIG_KVM_CLOCK
- kvmclock_init();
-#endif
-
#ifdef CONFIG_VMI
/*
* Must be after max_low_pfn is determined, and before kernel
diff --git a/include/linux/kvm_para.h b/include/linux/kvm_para.h
index 3ddce03..c5e662c 100644
--- a/include/linux/kvm_para.h
+++ b/include/linux/kvm_para.h
@@ -28,6 +28,11 @@ void __init kvm_guest_init(void);
#else
#define kvm_guest_init() do { } while (0)
#endif
+#ifdef CONFIG_KVM_CLOCK
+void kvmclock_init(void);
+#else
+#define kvmclock_init() do { } while (0)
+#endif
static inline int kvm_para_has_feature(unsigned int feature)
{
--
1.5.0.6
Glauber de Oliveira Costa
2008-Apr-16 17:29 UTC
[PATCH] kvm: move kvmclock initialization inside kvm_guest_init
Glauber Costa wrote:> It makes no sense for the clock initialization to be > hanging around in setup_32.c when we have a generic kvm guest > initialization function available. So, we move kvmclock_init() > inside such a function, leading to a cleaner code. > > Signed-off-by: Glauber Costa <gcosta at redhat.com> > --- > arch/x86/kernel/kvm.c | 2 ++ > arch/x86/kernel/setup_32.c | 4 ---- > include/linux/kvm_para.h | 5 +++++ > 3 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c > index d9121f9..5cad368 100644 > --- a/arch/x86/kernel/kvm.c > +++ b/arch/x86/kernel/kvm.c > @@ -210,6 +210,8 @@ static void paravirt_ops_setup(void) > pv_info.name = "KVM"; > pv_info.paravirt_enabled = 1; > > + kvmclock_init(); > + > if (kvm_para_has_feature(KVM_FEATURE_NOP_IO_DELAY)) > pv_cpu_ops.io_delay = kvm_io_delay; > > diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c > index 65f3a23..029350c 100644 > --- a/arch/x86/kernel/setup_32.c > +++ b/arch/x86/kernel/setup_32.c > @@ -771,10 +771,6 @@ void __init setup_arch(char **cmdline_p) > > max_low_pfn = setup_memory(); > > -#ifdef CONFIG_KVM_CLOCK > - kvmclock_init(); > -#endif > - > #ifdef CONFIG_VMI > /* > * Must be after max_low_pfn is determined, and before kernel > diff --git a/include/linux/kvm_para.h b/include/linux/kvm_para.h > index 3ddce03..c5e662c 100644 > --- a/include/linux/kvm_para.h > +++ b/include/linux/kvm_para.h > @@ -28,6 +28,11 @@ void __init kvm_guest_init(void); > #else > #define kvm_guest_init() do { } while (0) > #endif > +#ifdef CONFIG_KVM_CLOCK > +void kvmclock_init(void); > +#else > +#define kvmclock_init() do { } while (0) > +#endif > > static inline int kvm_para_has_feature(unsigned int feature) > { >Forget about it. Marelo just screamed to me (and somehow I heard it), that this create a bogus dependency between clock and the mmu functions. Duh. I'll resend a better version