[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 13/40] s390x: add css_migration_enabled to machine cl
From: |
Christian Borntraeger |
Subject: |
[Qemu-devel] [PULL 13/40] s390x: add css_migration_enabled to machine class |
Date: |
Fri, 14 Jul 2017 12:40:40 +0200 |
From: Halil Pasic <address@hidden>
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 <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>
---
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 df2b055..75bce6b 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -209,6 +209,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;
@@ -378,6 +379,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) \
@@ -484,6 +490,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)
@@ -498,8 +508,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 3027555..ab88d49 100644
--- a/include/hw/s390x/s390-virtio-ccw.h
+++ b/include/hw/s390x/s390-virtio-ccw.h
@@ -39,6 +39,7 @@ typedef struct S390CcwMachineClass {
/*< public >*/
bool ri_allowed;
bool cpu_model_allowed;
+ bool css_migration_enabled;
} S390CcwMachineClass;
/* runtime-instrumentation allowed by the machine */
@@ -46,4 +47,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.7.4
- [Qemu-devel] [PULL 19/40] pc-bios/s390-ccw: Move ebc2asc to sclp.c, (continued)
- [Qemu-devel] [PULL 19/40] pc-bios/s390-ccw: Move ebc2asc to sclp.c, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 23/40] pc-bios/s390-ccw: Remove unused structs from virtio.h, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 36/40] s390x/cpumodel: add esop/esop2 to z12 model, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 06/40] s390x/cpumodel: provide compat handling for new cpu features, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 15/40] s390x/css: add ORB to SubchDev, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 37/40] s390x/kvm: Enable KSS facility for nested virtualization, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 14/40] s390x/css: add missing css state conditionally, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 30/40] pc-bios/s390: rebuild s390-ccw.img, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 13/40] s390x: add css_migration_enabled to machine class,
Christian Borntraeger <=
- [Qemu-devel] [PULL 09/40] s390x/flic: introduce inject_airq callback, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 11/40] s390x/css: update css_adapter_interrupt, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 08/40] s390x/flic: introduce modify_ais_mode callback, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 21/40] pc-bios/s390-ccw: Add a write() function for stdio, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 32/40] s390x/cpumodel: add zpci, aen and ais facilities, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 24/40] pc-bios/s390-ccw: Add code for virtio feature negotiation, Christian Borntraeger, 2017/07/14
- [Qemu-devel] [PULL 31/40] s390x: initialize cpu firstly, Christian Borntraeger, 2017/07/14