Am 06.03.2014 11:27, schrieb Xuebing Wang:
> Advantage of applying this patch is: logic is clear
> Disadvantage is: binary code for non-CONFIG_KVM target is bigger
> (like sh4-softmmu or *-linux-user)
> - kvm_enabled() is always runtime (kvm_allowed), and compiler won't optimize
> if ( kvm_enabled() ) { ... } type of code.
> - Before the patch, for condition (!CONFIG_KVM && NEED_CPU_H), above example
> is preprocessed to be if (0) { ... } and then optimized
[...]
> diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
> index a02d67c..1829206 100644
> --- a/include/sysemu/kvm.h
> +++ b/include/sysemu/kvm.h
> @@ -49,7 +49,6 @@ extern bool kvm_gsi_routing_allowed;
> extern bool kvm_gsi_direct_mapping;
> extern bool kvm_readonly_mem_allowed;
>
> -#if defined CONFIG_KVM || !defined NEED_CPU_H
Have you tested compiling with --disable-kvm? CONFIG_KVM is not just
about targets like sh4 that don't support KVM but also about non-Linux
hosts.
Regards,
Andreas
> #define kvm_enabled() (kvm_allowed)
> /**
> * kvm_irqchip_in_kernel:
> @@ -123,18 +122,6 @@ extern bool kvm_readonly_mem_allowed;
> */
> #define kvm_readonly_mem_enabled() (kvm_readonly_mem_allowed)
>
> -#else
> -#define kvm_enabled() (0)
> -#define kvm_irqchip_in_kernel() (false)
> -#define kvm_async_interrupts_enabled() (false)
> -#define kvm_halt_in_kernel() (false)
> -#define kvm_irqfds_enabled() (false)
> -#define kvm_msi_via_irqfd_enabled() (false)
> -#define kvm_gsi_routing_allowed() (false)
> -#define kvm_gsi_direct_mapping() (false)
> -#define kvm_readonly_mem_enabled() (false)
> -#endif
> -
> struct kvm_run;
> struct kvm_lapic_state;
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg