From e555cbe78d59f09f7e7db7703d1e91b95f2743c0 Mon Sep 17 00:00:00 2001 From: David Hildenbrand Date: Fri, 20 Oct 2017 13:58:03 +0200 Subject: [PATCH 1/4] target/s390x: change CPU type name to "s390x-cpu" For now, e.g. host-s390-cpu wasn't exposed to the user. cpu-add, -cpu and the CPU model qmp interfaces didn't care about the actual type, as that information was hidden. This changed with CPU hotplug via device_add. Now the type is visible to the user. Before we get that supported in a stable version, this is our last chance to change it. So change it from "s390-cpu" to "s390x-cpu", to match the architecture name. Example names are then e.g. z14-s390x-cpu or qemu-s390x-cpu. Signed-off-by: David Hildenbrand Message-Id: <20171020115803.14093-1-david@redhat.com> Acked-by: Cornelia Huck Signed-off-by: Christian Borntraeger --- qapi-schema.json | 4 ++-- target/s390x/cpu-qom.h | 2 +- target/s390x/cpu_models.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/qapi-schema.json b/qapi-schema.json index a9dd043f65..18457954a8 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3159,12 +3159,12 @@ # -> { "execute": "query-hotpluggable-cpus" } # <- {"return": [ # { -# "type": "qemu-s390-cpu", "vcpus-count": 1, +# "type": "qemu-s390x-cpu", "vcpus-count": 1, # "props": { "core-id": 1 } # }, # { # "qom-path": "/machine/unattached/device[0]", -# "type": "qemu-s390-cpu", "vcpus-count": 1, +# "type": "qemu-s390x-cpu", "vcpus-count": 1, # "props": { "core-id": 0 } # } # ]} diff --git a/target/s390x/cpu-qom.h b/target/s390x/cpu-qom.h index 0510c49e07..b46217dc31 100644 --- a/target/s390x/cpu-qom.h +++ b/target/s390x/cpu-qom.h @@ -22,7 +22,7 @@ #include "qom/cpu.h" -#define TYPE_S390_CPU "s390-cpu" +#define TYPE_S390_CPU "s390x-cpu" #define S390_CPU_CLASS(klass) \ OBJECT_CLASS_CHECK(S390CPUClass, (klass), TYPE_S390_CPU) diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c index 9554f19eb4..c4c37b3b15 100644 --- a/target/s390x/cpu_models.c +++ b/target/s390x/cpu_models.c @@ -286,7 +286,7 @@ static void s390_print_cpu_model_list_entry(gpointer data, gpointer user_data) details = "(migration-safe)"; } - /* strip off the -s390-cpu */ + /* strip off the -s390x-cpu */ g_strrstr(name, "-" TYPE_S390_CPU)[0] = 0; (*s->cpu_fprintf)(s->file, "s390 %-15s %-35s %s\n", name, scc->desc, details); @@ -390,7 +390,7 @@ static void create_cpu_model_list(ObjectClass *klass, void *opaque) char *name = g_strdup(object_class_get_name(klass)); S390CPUClass *scc = S390_CPU_CLASS(klass); - /* strip off the -s390-cpu */ + /* strip off the -s390x-cpu */ g_strrstr(name, "-" TYPE_S390_CPU)[0] = 0; info = g_new0(CpuDefinitionInfo, 1); info->name = name; From 0280b3eb7c0519b43452c05cf51f8777d9e38975 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Fri, 20 Oct 2017 16:31:38 +0200 Subject: [PATCH 2/4] s390x/kvm: use cpu model for gscb on compat machines Starting a guest with hvm on an IBM z14 results in "qemu-system-s390x: Some features requested in the CPU model are not available in the configuration: gs" This is because guarded storage is fenced for compat machines that did not have guarded storage support. While this prevents future migration abort (by not starting the guest at all), not being able to start a "host-model" guest is very much unexpected. As it turns out, even if we would modify libvirt to not expand the cpu model to contain "gs" for compat machines, it cannot guarantee that a migration will succeed. For example if the kernel changes its features (or the user has nested=1 on one host but not on the other) the migration will fail nevertheless. So instead of fencing "gs" for machines <= 2.9 lets allow it for all machine types that support the CPU model. This will make "host-model" runnable all the time, while relying on the CPU model to reject invalid migration attempts. We also need to change the migration for guarded storage. Additional discussions about host-model are still pending but are out of scope of this patch. Suggested-by: David Hildenbrand Signed-off-by: Christian Borntraeger Acked-by: David Hildenbrand Acked-by: Cornelia Huck Acked-by: Halil Pasic --- hw/s390x/s390-virtio-ccw.c | 8 -------- include/hw/s390x/s390-virtio-ccw.h | 3 --- target/s390x/kvm.c | 2 +- target/s390x/machine.c | 2 +- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index baeafdcb1c..6a57f94197 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -432,7 +432,6 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data) s390mc->ri_allowed = true; s390mc->cpu_model_allowed = true; s390mc->css_migration_enabled = true; - s390mc->gs_allowed = true; mc->init = ccw_init; mc->reset = s390_machine_reset; mc->hot_add_cpu = s390_hot_add_cpu; @@ -513,12 +512,6 @@ bool cpu_model_allowed(void) return get_machine_class()->cpu_model_allowed; } -bool gs_allowed(void) -{ - /* for "none" machine this results in true */ - return get_machine_class()->gs_allowed; -} - static char *machine_get_loadparm(Object *obj, Error **errp) { S390CcwMachineState *ms = S390_CCW_MACHINE(obj); @@ -758,7 +751,6 @@ static void ccw_machine_2_9_class_options(MachineClass *mc) { S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc); - s390mc->gs_allowed = false; ccw_machine_2_10_class_options(mc); SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_9); s390mc->css_migration_enabled = false; diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-virtio-ccw.h index a9a90c2022..ac896e31ea 100644 --- a/include/hw/s390x/s390-virtio-ccw.h +++ b/include/hw/s390x/s390-virtio-ccw.h @@ -40,15 +40,12 @@ typedef struct S390CcwMachineClass { bool ri_allowed; bool cpu_model_allowed; bool css_migration_enabled; - bool gs_allowed; } S390CcwMachineClass; /* runtime-instrumentation allowed by the machine */ bool ri_allowed(void); /* cpu model allowed by the machine */ bool cpu_model_allowed(void); -/* guarded-storage allowed by the machine */ -bool gs_allowed(void); /** * Returns true if (vmstate based) migration of the channel subsystem diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index 88f27d75b9..b03f583032 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -306,7 +306,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) cap_ri = 1; } } - if (gs_allowed()) { + if (cpu_model_allowed()) { if (kvm_vm_enable_cap(s, KVM_CAP_S390_GS, 0) == 0) { cap_gs = 1; } diff --git a/target/s390x/machine.c b/target/s390x/machine.c index e1b7015d20..b78f326d3a 100644 --- a/target/s390x/machine.c +++ b/target/s390x/machine.c @@ -180,7 +180,7 @@ const VMStateDescription vmstate_exval = { static bool gscb_needed(void *opaque) { - return kvm_s390_get_gs(); + return s390_has_feat(S390_FEAT_GUARDED_STORAGE); } const VMStateDescription vmstate_gscb = { From 7618c0aefed1dd687539de0606111356dd02b4dc Mon Sep 17 00:00:00 2001 From: "Collin L. Walling" Date: Fri, 27 Oct 2017 12:14:53 -0400 Subject: [PATCH 3/4] s390-ccw: print carriage return with new lines The sclp console in the s390 bios writes raw data, leading console emulators (such as virsh console) to treat a new line ('\n') as just a new line instead of as a Unix line feed. Because of this, output appears in a "stair case" pattern. Let's print \r\n on every occurrence of a new line in the string passed to write to amend this issue. This is in sync with the guest Linux code in drivers/s390/char/sclp_vt220.c which also does a line feed conversion in the console part of the driver. This fixes the s390-ccw and s390-netboot output like $ virsh start test --console Domain test started Connected to domain test Escape character is ^] Network boot starting... Using MAC address: 02:01:02:03:04:05 Requesting information via DHCP: 010 Signed-off-by: Collin L. Walling Message-Id: <1509120893-28054-1-git-send-email-walling@linux.vnet.ibm.com> Reviewed-by: Halil Pasic Acked-by: Cornelia Huck Reviewed-by: Alexander Graf Signed-off-by: Christian Borntraeger --- pc-bios/s390-ccw/sclp.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/pc-bios/s390-ccw/sclp.c b/pc-bios/s390-ccw/sclp.c index b1fc8ff44b..90d1bc3147 100644 --- a/pc-bios/s390-ccw/sclp.c +++ b/pc-bios/s390-ccw/sclp.c @@ -76,17 +76,35 @@ static int _strlen(const char *str) long write(int fd, const void *str, size_t len) { WriteEventData *sccb = (void *)_sccb; + const char *p = str; + size_t data_len = 0; + size_t i; if (fd != 1 && fd != 2) { return -EIO; } - sccb->h.length = sizeof(WriteEventData) + len; + for (i = 0; i < len; i++) { + if ((data_len + 1) >= SCCB_DATA_LEN) { + /* We would overflow the sccb buffer, abort early */ + len = i; + break; + } + + if (*p == '\n') { + /* Terminal emulators might need \r\n, so generate it */ + sccb->data[data_len++] = '\r'; + } + + sccb->data[data_len++] = *p; + p++; + } + + sccb->h.length = sizeof(WriteEventData) + data_len; sccb->h.function_code = SCLP_FC_NORMAL_WRITE; - sccb->ebh.length = sizeof(EventBufferHeader) + len; + sccb->ebh.length = sizeof(EventBufferHeader) + data_len; sccb->ebh.type = SCLP_EVENT_ASCII_CONSOLE_DATA; sccb->ebh.flags = 0; - memcpy(sccb->data, str, len); sclp_service_call(SCLP_CMD_WRITE_EVENT_DATA, sccb); From 7a4ec18d117d74eedccdadca882331b928135465 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Mon, 30 Oct 2017 08:59:59 +0100 Subject: [PATCH 4/4] s390-*.img: update s390 bios with latest fixes includes 7618c0aefed1 ("s390-ccw: print carriage return with new lines") a8fbbf1db7a3 ("s390: set DHCP client architecure id for netboot") Signed-off-by: Christian Borntraeger --- pc-bios/s390-ccw.img | Bin 26416 -> 30520 bytes pc-bios/s390-netboot.img | Bin 83864 -> 83864 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img index 0b039291a57b8fe463679e5f462920a95e2437b4..75b604e3ce8a6001de313a0691d6738926c03624 100644 GIT binary patch literal 30520 zcmeHwd3;pW`S+P6$&ihkl?fo+fv91N6F>#rX0l*{ECU1_6eS@UNHm+138J+cHMK~s zhE%Lo+YU&)6k8o4ZNZJS^0R7PB5I|r3wE^S*SJhDDhTGj-{-maP9`z*_5J+b_w#xG zU_PJ8Irp6BJm=ZZbI!Q~x0EcLZ#J7m^kWg(sOt^!rFy$dEB(i~bcs1)lyHeOA>lb5 z-#D!wZQ5s8Y0}0CqZBrPS@5-L;O03amtwTm9xaJ3`Wo};-NTDDI^9M|Wb!zo6`w|} z5Vs5~ElzGQzp+W{;BjWu|2N|d`57hiN4y#Q>GYU~l_FQ0Ct6yo10Q(?$1U5V^$#yi zdb?2y8n+a%2|B*-T1XhT48S^_r;>}omr)ASId!#b |EZ+3ojV}1coM>sO^wOqP* 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 XO8V;aQdj7we6{}65!#BnF<$(4!;=Y3 diff --git a/pc-bios/s390-netboot.img b/pc-bios/s390-netboot.img index 295ddfcf6a37e7bd7b537410a78b499d56b2e924..24f40feae6fa02b8b930f75879a4ec9b8fcc39aa 100755 GIT binary patch delta 14234 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 Q$leyng1rxph>BgLN`q12q&{ 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