On 16.09.20 10:11, Thomas Huth wrote:
> 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
>> Acked-by: Janosch Frank
>> ---
>> 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
>
> (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...)
>
Had a skim over it and it looks good to me!
Acked-by: David Hildenbrand
--
Thanks,
David / dhildenb