Re: [PATCH qom-cpu 2/7] target-i386: Don't set any KVM flag by default if KVM is disabled

2013-01-09 Thread Igor Mammedov
On Mon,  7 Jan 2013 16:20:43 -0200
Eduardo Habkost ehabk...@redhat.com wrote:

 This is a cleanup that tries to solve two small issues:
 
  - We don't need a separate kvm_pv_eoi_features variable just to keep a
constant calculated at compile-time, and this style would require
adding a separate variable (that's declared twice because of the
CONFIG_KVM ifdef) for each feature that's going to be enabled/disable
by machine-type compat code.
  - The pc-1.3 code is setting the kvm_pv_eoi flag on cpuid_kvm_features
even when KVM is disabled at runtime. This small incosistency in
the cpuid_kvm_features field isn't a problem today because
cpuid_kvm_features is ignored by the TCG code, but it may cause
unexpected problems later when refactoring the CPUID handling code.
 
 This patch eliminates the kvm_pv_eoi_features variable and simply uses
 kvm_enabled() inside the enable_kvm_pv_eoi() compat function, so it
 enables kvm_pv_eoi only if KVM is enabled. I believe this makes the
 behavior of enable_kvm_pv_eoi() clearer and easier to understand.

Subj doesn't match what patch actually does.
Have you meant Don't set kvm_pv_eoi flag by default if KVM is disabled?
Although eliminate kvm_pv_eoi_features variable might better describe what
patch is doing.

 
 Signed-off-by: Eduardo Habkost ehabk...@redhat.com
 ---
 Cc: kvm@vger.kernel.org
 Cc: Michael S. Tsirkin m...@redhat.com
 Cc: Gleb Natapov g...@redhat.com
 Cc: Marcelo Tosatti mtosa...@redhat.com
 
 Changes v2:
  - Coding style fix
 
 Changes v3:
  - Eliminate #ifdef by using the fake KVM_FEATURE_PV_EOI #define
 ---
  target-i386/cpu.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/target-i386/cpu.c b/target-i386/cpu.c
 index 951e206..40400ac 100644
 --- a/target-i386/cpu.c
 +++ b/target-i386/cpu.c
 @@ -164,15 +164,15 @@ static uint32_t kvm_default_features = (1 
 KVM_FEATURE_CLOCKSOURCE) | (1  KVM_FEATURE_ASYNC_PF) |
  (1  KVM_FEATURE_STEAL_TIME) |
  (1  KVM_FEATURE_CLOCKSOURCE_STABLE_BIT);
 -static const uint32_t kvm_pv_eoi_features = (0x1  KVM_FEATURE_PV_EOI);
  #else
  static uint32_t kvm_default_features = 0;
 -static const uint32_t kvm_pv_eoi_features = 0;
  #endif
  
  void enable_kvm_pv_eoi(void)
  {
 -kvm_default_features |= kvm_pv_eoi_features;
 +if (kvm_enabled()) {
 +kvm_default_features |= (1UL  KVM_FEATURE_PV_EOI);
 +}
  }
  
  void host_cpuid(uint32_t function, uint32_t count,

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH qom-cpu 2/7] target-i386: Don't set any KVM flag by default if KVM is disabled

2013-01-09 Thread Eduardo Habkost
On Wed, Jan 09, 2013 at 09:41:37AM -0200, Eduardo Habkost wrote:
[...]
 Andreas, please ignore this patch (it is not necessary anymore as this
 series doesn't include machine-type compatibility code for kvm_mmu).
 Patches 2-7 don't depend on this patch and should apply cleanly without
 it.

I mean: patches 1 and 3-7 don't depend on this patch and can be applied
cleanly without it.

-- 
Eduardo
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH qom-cpu 2/7] target-i386: Don't set any KVM flag by default if KVM is disabled

2013-01-09 Thread Eduardo Habkost
On Wed, Jan 09, 2013 at 10:46:12AM +0100, Igor Mammedov wrote:
 On Mon,  7 Jan 2013 16:20:43 -0200
 Eduardo Habkost ehabk...@redhat.com wrote:
 
  This is a cleanup that tries to solve two small issues:
  
   - We don't need a separate kvm_pv_eoi_features variable just to keep a
 constant calculated at compile-time, and this style would require
 adding a separate variable (that's declared twice because of the
 CONFIG_KVM ifdef) for each feature that's going to be enabled/disable
 by machine-type compat code.
   - The pc-1.3 code is setting the kvm_pv_eoi flag on cpuid_kvm_features
 even when KVM is disabled at runtime. This small incosistency in
 the cpuid_kvm_features field isn't a problem today because
 cpuid_kvm_features is ignored by the TCG code, but it may cause
 unexpected problems later when refactoring the CPUID handling code.
  
  This patch eliminates the kvm_pv_eoi_features variable and simply uses
  kvm_enabled() inside the enable_kvm_pv_eoi() compat function, so it
  enables kvm_pv_eoi only if KVM is enabled. I believe this makes the
  behavior of enable_kvm_pv_eoi() clearer and easier to understand.
 
 Subj doesn't match what patch actually does.
 Have you meant Don't set kvm_pv_eoi flag by default if KVM is disabled?
 Although eliminate kvm_pv_eoi_features variable might better describe what
 patch is doing.


True. The other flags in kvm_default_features may be already set and
will be copied to cpuid_kvm_features even if kvm_enabled() is false.

I had a previous version of this patch that also changed the code using
kvm_default_features to check kvm_enabled(), but I removed that part and
kept only the kvm_pv_eoi_features variable removal.

Andreas, please ignore this patch (it is not necessary anymore as this
series doesn't include machine-type compatibility code for kvm_mmu).
Patches 2-7 don't depend on this patch and should apply cleanly without
it.

I will send a new version later, probably with a separate patch to
ignore kvm_default_features if kvm_enabled() is false (so there's no
need to even check kvm_enabled() inside enable_kvm_pv_eoi()).

 
  
  Signed-off-by: Eduardo Habkost ehabk...@redhat.com
  ---
  Cc: kvm@vger.kernel.org
  Cc: Michael S. Tsirkin m...@redhat.com
  Cc: Gleb Natapov g...@redhat.com
  Cc: Marcelo Tosatti mtosa...@redhat.com
  
  Changes v2:
   - Coding style fix
  
  Changes v3:
   - Eliminate #ifdef by using the fake KVM_FEATURE_PV_EOI #define
  ---
   target-i386/cpu.c | 6 +++---
   1 file changed, 3 insertions(+), 3 deletions(-)
  
  diff --git a/target-i386/cpu.c b/target-i386/cpu.c
  index 951e206..40400ac 100644
  --- a/target-i386/cpu.c
  +++ b/target-i386/cpu.c
  @@ -164,15 +164,15 @@ static uint32_t kvm_default_features = (1 
  KVM_FEATURE_CLOCKSOURCE) | (1  KVM_FEATURE_ASYNC_PF) |
   (1  KVM_FEATURE_STEAL_TIME) |
   (1  KVM_FEATURE_CLOCKSOURCE_STABLE_BIT);
  -static const uint32_t kvm_pv_eoi_features = (0x1  KVM_FEATURE_PV_EOI);
   #else
   static uint32_t kvm_default_features = 0;
  -static const uint32_t kvm_pv_eoi_features = 0;
   #endif
   
   void enable_kvm_pv_eoi(void)
   {
  -kvm_default_features |= kvm_pv_eoi_features;
  +if (kvm_enabled()) {
  +kvm_default_features |= (1UL  KVM_FEATURE_PV_EOI);
  +}
   }
   
   void host_cpuid(uint32_t function, uint32_t count,
 

-- 
Eduardo
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html