On 15/09/2020 21.44, Collin Walling wrote: > DIAGNOSE 0x318 (diag318) is an s390 instruction that allows the storage > of diagnostic information that is collected by the firmware in the case > of hardware/firmware service events. > > QEMU handles the instruction by storing the info in the CPU state. A > subsequent register sync will communicate the data to the hypervisor. > > QEMU handles the migration via a VM State Description. > > This feature depends on the Extended-Length SCCB (els) feature. If > els is not present, then a warning will be printed and the SCLP bit > that allows the Linux kernel to execute the instruction will not be > set. > > Availability of this instruction is determined by byte 134 (aka fac134) > bit 0 of the SCLP Read Info block. This coincidentally expands into the > space used for CPU entries, which means VMs running with the diag318 > capability may not be able to read information regarding all CPUs > unless the guest kernel supports an extended-length SCCB. > > This feature is not supported in protected virtualization mode. > > Signed-off-by: Collin Walling <wall...@linux.ibm.com> > Acked-by: Janosch Frank <fran...@linux.ibm.com> > --- > hw/s390x/sclp.c | 5 ++++ > include/hw/s390x/sclp.h | 8 ++++++ > target/s390x/cpu.h | 2 ++ > target/s390x/cpu_features.h | 1 + > target/s390x/cpu_features_def.h.inc | 3 +++ > target/s390x/cpu_models.c | 1 + > target/s390x/gen-features.c | 1 + > target/s390x/kvm.c | 39 +++++++++++++++++++++++++++++ > target/s390x/machine.c | 17 +++++++++++++ > 9 files changed, 77 insertions(+)
Acked-by: Thomas Huth <th...@redhat.com> (I hope David could still comment on the CPU model stuff ... it looks ok to me here, but I got that wrong a couple of times in the past already...)