This patch series introduces two features for an s390 KVM quest: - Extended-Length SCCB (els) for the Read SCP/CPU Info SCLP commands - DIAGNOSE 0x318 (diag318) enabling / migration handling
The diag318 feature depends on els and KVM support. The els feature is handled entirely with QEMU, and does not require KVM support. These patches are introduced together for two main reasons: - els allows diag318 to exist while retaining the original 248 VCPU max - diag318 is presented to show how els is useful Full els support is dependant on the Linux kernel, which must react to the SCLP response code and set an appropriate-length SCCB. A user should take care when tuning the CPU model for a VM. If a user defines a VM with els support and specifies 248 CPUs, but the guest Linux kernel cannot react to the SCLP response code, then the guest will crash immediately upon kernel startup. Since it has been some time since the last review and a few things have changed, I've removed all ack's and set this submission to v1. Collin L. Walling (8): s390/sclp: remove SCLPDevice param from prepare_cpu_entries s390/sclp: check sccb len before filling in data s390/sclp: rework sclp boundary and length checks s390/sclp: read sccb from mem based on sccb length s390/sclp: use cpu offset to locate cpu entries s390/sclp: add extended-length sccb support for kvm guest s390/kvm: header sync for diag318 s390: diagnose 318 info reset and migration support hw/s390x/s390-virtio-ccw.c | 45 +++++++++++++ hw/s390x/sclp.c | 101 +++++++++++++++++++++------- include/hw/s390x/s390-virtio-ccw.h | 1 + include/hw/s390x/sclp.h | 4 ++ linux-headers/asm-s390/kvm.h | 5 ++ smp.max_cpus | 0 target/s390x/cpu.c | 19 ++++++ target/s390x/cpu.h | 4 ++ target/s390x/cpu_features.h | 1 + target/s390x/cpu_features_def.inc.h | 4 ++ target/s390x/cpu_models.c | 1 + target/s390x/gen-features.c | 2 + target/s390x/kvm-stub.c | 10 +++ target/s390x/kvm.c | 52 ++++++++++++++ target/s390x/kvm_s390x.h | 3 + 15 files changed, 229 insertions(+), 23 deletions(-) create mode 100644 smp.max_cpus -- 2.21.1