On Thu, 19 Mar 2020 09:19:05 -0400 Janosch Frank <fran...@linux.ibm.com> wrote:
> Most of the QEMU changes for PV are related to the new IPL type with > subcodes 8 - 10 and the execution of the necessary Ultravisor calls to > IPL secure guests. Note that we can only boot into secure mode from > normal mode, i.e. stfle 161 is not active in secure mode. > > The other changes related to data gathering for emulation and > disabling addressing checks in secure mode, as well as CPU resets. > > v11: > * Review fixes > > v10: > * Moved documentation into subfolder > * Added huge page fencing > * Cleared up IO questions that were remaining > * Added exits/abbort/assert for conditions where we can't recover > > v9: > * Moved pv.h into include/hw/s390x/ > * Replaced cmd strings with macro > * Moved s390_is_pv() to pv.h > * Added new copyright dates and authors > v8: > * Removed the iplb_valid changes as they are picked > * Checkpatch fixes > * Review fixes > * Replaced env/ms->pv with s390_is_pv() > v7: > * Merged the diag 308 subcode patches and the unpack > * Moved the SIDA memops into the sync patch > * Bailout for the none machien and fencing of CONFIG_USER_ONLY > * Changes due to review > > v6: > * diag308 rc numbers were changed by architecture > * IPL pv block received one more reserved field by architecture > * Officially added the bios patch to the series > * Dropped picked constant rename patch > > v5: > * Moved docs into docs/system > * Some more enable/disable changes > * Moved enablement/disablement of pv in separate functions > * Some review fixes > > v4: > * Sync with KVM changes > * Review changes > > V3: > * Use dedicated functions to access SIDA > * Smaller cleanups and segfault fixes > * Error reporting for Ultravisor calls > * Inject of RC of diag308 subcode 10 fails > > V2: > * Split out cleanups > * Internal PV state tracking > * Review feedback > > Christian Borntraeger (1): > s390x: Add unpack facility feature to GA1 > > Janosch Frank (15): > s390x: Move diagnose 308 subcodes and rcs into ipl.h > Sync pv > s390x: protvirt: Support unpack facility > s390x: protvirt: Add migration blocker > s390x: protvirt: Inhibit balloon when switching to protected mode > s390x: protvirt: KVM intercept changes > s390x: Add SIDA memory ops > s390x: protvirt: Move STSI data over SIDAD > s390x: protvirt: SCLP interpretation > s390x: protvirt: Set guest IPL PSW > s390x: protvirt: Move diag 308 data over SIDA > s390x: protvirt: Disable address checks for PV guest IO emulation > s390x: protvirt: Move IO control structures over SIDA > s390x: protvirt: Handle SIGP store status correctly > docs: system: Add protvirt docs > > MAINTAINERS | 2 + > docs/system/s390x/protvirt.rst | 60 +++++++++++ > docs/system/target-s390x.rst | 5 + > hw/s390x/Makefile.objs | 1 + > hw/s390x/ipl.c | 59 ++++++++++- > hw/s390x/ipl.h | 102 ++++++++++++++++++- > hw/s390x/pv.c | 98 ++++++++++++++++++ > hw/s390x/s390-virtio-ccw.c | 148 +++++++++++++++++++++++++++- > hw/s390x/sclp.c | 56 ++++++++--- > include/hw/s390x/pv.h | 55 +++++++++++ > include/hw/s390x/s390-virtio-ccw.h | 1 + > include/hw/s390x/sclp.h | 2 + > linux-headers/linux/kvm.h | 45 ++++++++- > target/s390x/cpu.c | 27 +++-- > target/s390x/cpu.h | 7 +- > target/s390x/cpu_features_def.inc.h | 1 + > target/s390x/diag.c | 77 +++++++++++---- > target/s390x/gen-features.c | 1 + > target/s390x/helper.c | 6 ++ > target/s390x/ioinst.c | 96 +++++++++++++----- > target/s390x/kvm-stub.c | 5 + > target/s390x/kvm.c | 79 +++++++++++++-- > target/s390x/kvm_s390x.h | 3 + > target/s390x/mmu_helper.c | 14 +++ > 24 files changed, 870 insertions(+), 80 deletions(-) > create mode 100644 docs/system/s390x/protvirt.rst > create mode 100644 hw/s390x/pv.c > create mode 100644 include/hw/s390x/pv.h > Thanks, queued to s390-next for 5.1 (with v12 of patch 3). Patch 2 will obviously need to be replaced by a proper headers update; I'll do that when 5.1 development opens up (I assume the kernel patches will have reached Linux master before that.) (Any further s390x patches for 5.0 will go via s390-fixes, as usual.)