[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-2.5 8/8] s390x: Disable storage key migration on
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PATCH for-2.5 8/8] s390x: Disable storage key migration on old machine type |
Date: |
Mon, 20 Jul 2015 15:49:58 +0200 |
From: "Jason J. Herne" <address@hidden>
This code disables storage key migration when an older machine type is
specified.
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Jason J. Herne <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
hw/s390x/s390-skeys.c | 28 +++++++++++++++++++++++++---
hw/s390x/s390-virtio-ccw.c | 12 ++++++++++++
include/hw/s390x/storage-keys.h | 1 +
3 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
index a927c98..2f23600 100644
--- a/hw/s390x/s390-skeys.c
+++ b/hw/s390x/s390-skeys.c
@@ -345,12 +345,34 @@ static int s390_storage_keys_load(QEMUFile *f, void
*opaque, int version_id)
return ret;
}
-static void s390_skeys_instance_init(Object *obj)
+static inline bool s390_skeys_get_migration_enabled(Object *obj, Error **errp)
{
S390SKeysState *ss = S390_SKEYS(obj);
- register_savevm(NULL, TYPE_S390_SKEYS, 0, 1, s390_storage_keys_save,
- s390_storage_keys_load, ss);
+ return ss->migration_enabled;
+}
+
+static inline void s390_skeys_set_migration_enabled(Object *obj, bool value,
+ Error **errp)
+{
+ S390SKeysState *ss = S390_SKEYS(obj);
+
+ ss->migration_enabled = value;
+
+ if (ss->migration_enabled) {
+ register_savevm(NULL, TYPE_S390_SKEYS, 0, 1, s390_storage_keys_save,
+ s390_storage_keys_load, ss);
+ } else {
+ unregister_savevm(DEVICE(ss), TYPE_S390_SKEYS, ss);
+ }
+}
+
+static void s390_skeys_instance_init(Object *obj)
+{
+ object_property_add_bool(obj, "migration-enabled",
+ s390_skeys_get_migration_enabled,
+ s390_skeys_set_migration_enabled, NULL);
+ object_property_set_bool(obj, true, "migration-enabled", NULL);
}
static void s390_skeys_class_init(ObjectClass *oc, void *data)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 8f1b1fc..80d4714 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -282,13 +282,25 @@ static const TypeInfo ccw_machine_info = {
},
};
+#define CCW_COMPAT_2_4 \
+ {\
+ .driver = TYPE_S390_SKEYS,\
+ .property = "migration-enabled",\
+ .value = "off",\
+ },
+
static void ccw_machine_2_4_class_init(ObjectClass *oc, void *data)
{
MachineClass *mc = MACHINE_CLASS(oc);
+ static GlobalProperty compat_props[] = {
+ CCW_COMPAT_2_4
+ { /* end of list */ }
+ };
mc->name = "s390-ccw-virtio-2.4";
mc->alias = "s390-ccw-virtio";
mc->desc = "VirtIO-ccw based S390 machine v2.4";
+ mc->compat_props = compat_props;
}
static const TypeInfo ccw_machine_2_4_info = {
diff --git a/include/hw/s390x/storage-keys.h b/include/hw/s390x/storage-keys.h
index 18e08d2..72b850c 100644
--- a/include/hw/s390x/storage-keys.h
+++ b/include/hw/s390x/storage-keys.h
@@ -21,6 +21,7 @@
typedef struct S390SKeysState {
DeviceState parent_obj;
+ bool migration_enabled;
} S390SKeysState;
--
2.4.6
- [Qemu-devel] [PATCH for-2.5 0/8] s390x: storage key migration, Cornelia Huck, 2015/07/20
- [Qemu-devel] [PATCH for-2.5 5/8] s390x: Dump-skeys hmp support, Cornelia Huck, 2015/07/20
- [Qemu-devel] [PATCH for-2.5 3/8] s390x: Enable new s390-storage-keys device, Cornelia Huck, 2015/07/20
- [Qemu-devel] [PATCH for-2.5 1/8] s390x: add 2.5 compat s390-ccw-virtio machine, Cornelia Huck, 2015/07/20
- [Qemu-devel] [PATCH for-2.5 7/8] s390x: Migrate guest storage keys (initial memory only), Cornelia Huck, 2015/07/20
- [Qemu-devel] [PATCH for-2.5 6/8] s390x: Info skeys sub-command, Cornelia Huck, 2015/07/20
- [Qemu-devel] [PATCH for-2.5 8/8] s390x: Disable storage key migration on old machine type,
Cornelia Huck <=
- [Qemu-devel] [PATCH for-2.5 2/8] s390x: Create QOM device for s390 storage keys, Cornelia Huck, 2015/07/20
- [Qemu-devel] [PATCH for-2.5 4/8] s390x: Dump storage keys qmp command, Cornelia Huck, 2015/07/20