[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318
From: |
Collin Walling |
Subject: |
[PATCH v5 0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318 |
Date: |
Thu, 10 Sep 2020 05:36:47 -0400 |
Janosch, Thomas, Conny: I've removed your r-b's from patch #3 since I
added some g_mallocs in place and I'd like to make sure things are
done properly there (explained in changelog, but let me know if further
explanation is necessary).
Janosch, please let me know if the changes to #3 are safe under PV.
Thanks.
Changelog:
v5
• removed sccb_verify_length function
- will simply use the length check code that was in place before
• introduced a macro for calculating required SCCB length
- takes a struct and max # of cpus as args
• work_sccb size is now dynamically allocated based on the length
provided by the guest kernel, instead of always using a static
4K size
- as such, the SCCB will have to be read twice:
- first time to retrieve the header
- second time with proper size after space for work_sccb
is allocated
v4
• added r-b's and ack's (thanks, everyone!)
• renamed boundary and length function
• updated header sync to reflect a change discussed in the respective
KVM patches
• s/data_len/offset_cpu
• added /* fallthrough */ comment in boundary check
v3
• Device IOCTLs removed
- diag 318 info is now communicated via sync_regs
• Reset code removed
- this is now handled in KVM
- diag318_info is stored within the CPU reset portion of the
S390CPUState
• Various cleanups for ELS preliminary patches
v2
• QEMU now handles the instruction call
- as such, the "enable diag 318" IOCTL has been removed
• patch #1 now changes the read scp/cpu info functions to
retrieve the machine state once
- as such, I have not added any ack's or r-bs since this
patch differs from the previous version
• patch #3 introduces a new "get_read_scp_info_data_len"
function in order clean-up the variable data length assignment
in patch #7
- a comment above this function should help clarify what's
going on to make things a bit easier to read
• other misc clean ups and fixes
- s/diag318/diag_318 in order to keep the naming scheme
consistent with Linux and other diag-related code
- s/byte_134/fac134 to align naming scheme with Linux
-----------------------------------------------------------------------
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 (diag_318) enabling / migration handling
The diag 318 feature depends on els and KVM support.
The els feature is handled entirely with QEMU, and does not require
KVM support.
Both features are made available starting with the zEC12-full model.
These patches are introduced together for two main reasons:
- els allows diag 318 to exist while retaining the original 248
VCPU max
- diag 318 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.
Collin L. Walling (8):
s390/sclp: get machine once during read scp/cpu info
s390/sclp: rework sclp boundary checks
s390/sclp: read sccb from mem based on provided length
s390/sclp: check sccb len before filling in data
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: guest support for diagnose 0x318
hw/s390x/event-facility.c | 2 +-
hw/s390x/sclp.c | 145 ++++++++++++++++++++--------
include/hw/s390x/sclp.h | 6 +-
linux-headers/asm-s390/kvm.h | 7 +-
linux-headers/linux/kvm.h | 1 +
target/s390x/cpu.h | 2 +
target/s390x/cpu_features.h | 1 +
target/s390x/cpu_features_def.h.inc | 4 +
target/s390x/cpu_models.c | 1 +
target/s390x/gen-features.c | 2 +
target/s390x/kvm.c | 39 ++++++++
target/s390x/machine.c | 17 ++++
12 files changed, 183 insertions(+), 44 deletions(-)
--
2.26.2
- [PATCH v5 0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318,
Collin Walling <=
[PATCH v5 2/8] s390/sclp: rework sclp boundary checks, Collin Walling, 2020/09/10