qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Halil Pasic <pasic@linux.vnet.ibm.com>
To: Cornelia Huck <cornelia.huck@de.ibm.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,
	Juan Quintela <quintela@redhat.com>,
	qemu-devel@nongnu.org, Halil Pasic <pasic@linux.vnet.ibm.com>
Subject: [Qemu-devel] [PATCH v2 3/7] s390x: add css_migration_enabled to machine class
Date: Mon, 29 May 2017 15:55:16 +0200	[thread overview]
Message-ID: <20170529135520.101429-4-pasic@linux.vnet.ibm.com> (raw)
In-Reply-To: <20170529135520.101429-1-pasic@linux.vnet.ibm.com>

Currently the migration of the channel subsystem (css) is only partial
and is done by the virtio ccw proxies -- the only migratable  css devices
existing at the moment.

With the current work on emulated and passthrough devices we need to
decouple the migration of the channel subsystem state from virtio ccw,
and have a separate section for it. A new section  however necessarily
breaks the migration compatibility.

So let us introduce a switch at the machine class, and put it in 'off'
state for now. We will turn the switch 'on' for future machines once all
preparations are met. For compatibility  machines the switch will stay
'off'.

Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
---
 hw/s390x/s390-virtio-ccw.c         | 13 +++++++++++++
 include/hw/s390x/s390-virtio-ccw.h |  7 +++++++
 2 files changed, 20 insertions(+)

diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 04148916ed..95256d3982 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -196,6 +196,7 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
 
     s390mc->ri_allowed = true;
     s390mc->cpu_model_allowed = true;
+    s390mc->css_migration_enabled = false; /* TODO: set to true */
     mc->init = ccw_init;
     mc->reset = s390_machine_reset;
     mc->hot_add_cpu = s390_hot_add_cpu;
@@ -344,6 +345,11 @@ static const TypeInfo ccw_machine_info = {
     },
 };
 
+bool css_migration_enabled(void)
+{
+    return get_machine_class()->css_migration_enabled;
+}
+
 #define DEFINE_CCW_MACHINE(suffix, verstr, latest)                            \
     static void ccw_machine_##suffix##_class_init(ObjectClass *oc,            \
                                                   void *data)                 \
@@ -445,6 +451,10 @@ static const TypeInfo ccw_machine_info = {
 
 static void ccw_machine_2_10_instance_options(MachineState *machine)
 {
+    /*
+     * TODO Once preparations are done register vmstate for the css if
+     * css_migration_enabled().
+     */
 }
 
 static void ccw_machine_2_10_class_options(MachineClass *mc)
@@ -459,8 +469,11 @@ static void ccw_machine_2_9_instance_options(MachineState *machine)
 
 static void ccw_machine_2_9_class_options(MachineClass *mc)
 {
+    S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc);
+
     ccw_machine_2_10_class_options(mc);
     SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_9);
+    s390mc->css_migration_enabled = false;
 }
 DEFINE_CCW_MACHINE(2_9, "2.9", false);
 
diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-virtio-ccw.h
index 7b8a3e4d74..e9c4f4182b 100644
--- a/include/hw/s390x/s390-virtio-ccw.h
+++ b/include/hw/s390x/s390-virtio-ccw.h
@@ -38,6 +38,7 @@ typedef struct S390CcwMachineClass {
     /*< public >*/
     bool ri_allowed;
     bool cpu_model_allowed;
+    bool css_migration_enabled;
 } S390CcwMachineClass;
 
 /* runtime-instrumentation allowed by the machine */
@@ -45,4 +46,10 @@ bool ri_allowed(void);
 /* cpu model allowed by the machine */
 bool cpu_model_allowed(void);
 
+/**
+ * Returns true if (vmstate based) migration of the channel subsystem
+ * is enabled, false if it is disabled.
+ */
+bool css_migration_enabled(void);
+
 #endif
-- 
2.11.2

  parent reply	other threads:[~2017-05-29 13:55 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-29 13:55 [Qemu-devel] [PATCH v2 0/7] migration: s390x css migration Halil Pasic
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 1/7] s390x: vmstatify config migration for virtio-ccw Halil Pasic
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 2/7] s390x: add helper get_machine_class Halil Pasic
2017-06-01 11:13   ` Cornelia Huck
2017-05-29 13:55 ` Halil Pasic [this message]
2017-06-01 11:16   ` [Qemu-devel] [PATCH v2 3/7] s390x: add css_migration_enabled to machine class Cornelia Huck
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 4/7] s390x/css: add missing css state conditionally Halil Pasic
2017-05-31 18:52   ` Juan Quintela
2017-06-01  9:35     ` Halil Pasic
2017-06-01 11:32       ` Cornelia Huck
2017-06-01 11:46         ` Halil Pasic
2017-06-07 18:03           ` Juan Quintela
2017-06-08  8:52             ` Halil Pasic
2017-06-01 11:42   ` Cornelia Huck
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 5/7] s390x/css: add ORB to SubchDev Halil Pasic
2017-06-01 11:45   ` Cornelia Huck
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 6/7] s390x/css: activate ChannelSubSys migration Halil Pasic
2017-06-01  8:40   ` Thomas Huth
2017-06-01 10:12     ` Halil Pasic
2017-06-01 11:47   ` Cornelia Huck
2017-05-29 13:55 ` [Qemu-devel] [PATCH v2 7/7] s390x/css: use SubchDev.orb Halil Pasic
2017-06-01 11:50   ` Cornelia Huck
2017-05-31 16:46 ` [Qemu-devel] [PATCH v2 0/7] migration: s390x css migration Dr. David Alan Gilbert
2017-06-01 11:51 ` Cornelia Huck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170529135520.101429-4-pasic@linux.vnet.ibm.com \
    --to=pasic@linux.vnet.ibm.com \
    --cc=bjsdjshi@linux.vnet.ibm.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=dgilbert@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).