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