qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [qom-cpu PATCH v3 0/2] target-i386: Fixes for migratable/invtsc
@ 2014-06-17 20:31 Eduardo Habkost
  2014-06-17 20:31 ` [Qemu-devel] [qom-cpu PATCH v3 1/2] target-i386: Use x86_cpu_get_supported_feature_word() for "-cpu host" Eduardo Habkost
  2014-06-17 20:31 ` [Qemu-devel] [qom-cpu PATCH v3 2/2] target-i386: Set migratable=yes by default on "host" CPU mooel Eduardo Habkost
  0 siblings, 2 replies; 3+ messages in thread
From: Eduardo Habkost @ 2014-06-17 20:31 UTC (permalink / raw)
  To: qemu-devel, Andreas Färber
  Cc: Paolo Bonzini, Richard Henderson, Marcelo Tosatti, Aurelien Jarno,
	Igor Mammedov

This series contains two fixes for the qom-cpu branch:
 * Make the new "migratable" property actually work;
 * Avoid breaking setups where "-cpu host" needs to be migratable.
   (See discussion at http://marc.info/?l=qemu-devel&m=139838802220184&w=2 )

Changes v2 -> v3:
 * Rebase to latest qom-cpu branch

Eduardo Habkost (2):
  target-i386: Use x86_cpu_get_supported_feature_word() for "-cpu host"
  target-i386: Set migratable=yes by default on "host" CPU mooel

 target-i386/cpu.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

-- 
1.9.3

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Qemu-devel] [qom-cpu PATCH v3 1/2] target-i386: Use x86_cpu_get_supported_feature_word() for "-cpu host"
  2014-06-17 20:31 [Qemu-devel] [qom-cpu PATCH v3 0/2] target-i386: Fixes for migratable/invtsc Eduardo Habkost
@ 2014-06-17 20:31 ` Eduardo Habkost
  2014-06-17 20:31 ` [Qemu-devel] [qom-cpu PATCH v3 2/2] target-i386: Set migratable=yes by default on "host" CPU mooel Eduardo Habkost
  1 sibling, 0 replies; 3+ messages in thread
From: Eduardo Habkost @ 2014-06-17 20:31 UTC (permalink / raw)
  To: qemu-devel, Andreas Färber
  Cc: Paolo Bonzini, Richard Henderson, Marcelo Tosatti, Aurelien Jarno,
	Igor Mammedov

This will make "-cpu host" to reuse the feature filtering logic used by
x86_cpu_filter_features() (i.e. TCG support, and the new "migratable"
flag).

This doesn't add "-cpu host" support to TCG mode yet, but that may be
possible eventually.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 target-i386/cpu.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index d401a7c..5db0338 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1276,6 +1276,9 @@ static void host_x86_cpu_class_init(ObjectClass *oc, void *data)
     dc->props = host_x86_cpu_properties;
 }
 
+static uint32_t x86_cpu_get_supported_feature_word(FeatureWord w,
+                                                   bool migratable_only);
+
 static void host_x86_cpu_initfn(Object *obj)
 {
     X86CPU *cpu = X86_CPU(obj);
@@ -1290,10 +1293,8 @@ static void host_x86_cpu_initfn(Object *obj)
     env->cpuid_xlevel2 = kvm_arch_get_supported_cpuid(s, 0xC0000000, 0, R_EAX);
 
     for (w = 0; w < FEATURE_WORDS; w++) {
-        FeatureWordInfo *wi = &feature_word_info[w];
         env->features[w] =
-            kvm_arch_get_supported_cpuid(s, wi->cpuid_eax, wi->cpuid_ecx,
-                                         wi->cpuid_reg);
+            x86_cpu_get_supported_feature_word(w, cpu->migratable);
     }
     object_property_set_bool(OBJECT(cpu), true, "pmu", &error_abort);
 }
-- 
1.9.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Qemu-devel] [qom-cpu PATCH v3 2/2] target-i386: Set migratable=yes by default on "host" CPU mooel
  2014-06-17 20:31 [Qemu-devel] [qom-cpu PATCH v3 0/2] target-i386: Fixes for migratable/invtsc Eduardo Habkost
  2014-06-17 20:31 ` [Qemu-devel] [qom-cpu PATCH v3 1/2] target-i386: Use x86_cpu_get_supported_feature_word() for "-cpu host" Eduardo Habkost
@ 2014-06-17 20:31 ` Eduardo Habkost
  1 sibling, 0 replies; 3+ messages in thread
From: Eduardo Habkost @ 2014-06-17 20:31 UTC (permalink / raw)
  To: qemu-devel, Andreas Färber
  Cc: Paolo Bonzini, Richard Henderson, Marcelo Tosatti, Aurelien Jarno,
	Igor Mammedov

Having only migratable flags reported by default on the "host" CPU model
is safer for the following reasons:

 * Existing users may expect "-cpu host" to be migration-safe, if they
   take care of always using compatible host CPUs, host kernels, and
   QEMU versions.
 * Users who don't care aboug migration and want to enable all features
   supported by the host kernel can simply change their setup to use
   migratable=no.

Without this change, people using "-cpu host" will stop being able to
migrate, because now "invtsc" is getting enabled by default.

We are not setting migratable=yes by default on all X86CPU subclasses,
because users should be able to get non-migratable features enabled if
they ask for them explicitly.

Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
For a discussion about why it makes sense to set it by default, see:
  http://marc.info/?l=qemu-devel&m=139838802220184&w=2
---
 target-i386/cpu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 5db0338..8c80dea 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1240,7 +1240,7 @@ static int cpu_x86_fill_model_id(char *str)
 static X86CPUDefinition host_cpudef;
 
 static Property host_x86_cpu_properties[] = {
-    DEFINE_PROP_BOOL("migratable", X86CPU, migratable, false),
+    DEFINE_PROP_BOOL("migratable", X86CPU, migratable, true),
     DEFINE_PROP_END_OF_LIST()
 };
 
-- 
1.9.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-06-17 20:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-17 20:31 [Qemu-devel] [qom-cpu PATCH v3 0/2] target-i386: Fixes for migratable/invtsc Eduardo Habkost
2014-06-17 20:31 ` [Qemu-devel] [qom-cpu PATCH v3 1/2] target-i386: Use x86_cpu_get_supported_feature_word() for "-cpu host" Eduardo Habkost
2014-06-17 20:31 ` [Qemu-devel] [qom-cpu PATCH v3 2/2] target-i386: Set migratable=yes by default on "host" CPU mooel Eduardo Habkost

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).