On Fri, 14 Feb 2020 10:16:19 -0500 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. Does it make sense to start looking at this series now, or I should I wait until review on the kernel side has settled? (I've lost track of the state of the interfaces...) > > 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 > > Janosch Frank (17): > Header sync > s390x: Add missing vcpu reset functions > Sync pv > s390x: protvirt: Add diag308 subcodes 8 - 10 > s390x: protvirt: Support unpack facility > s390x: protvirt: Add migration blocker > s390x: protvirt: Handle diag 308 subcodes 0,1,3,4 > s390x: protvirt: KVM intercept changes > s390: protvirt: Move STSI data over SIDAD > s390x: Add SIDA memory ops > s390x: protvirt: SCLP interpretation > s390x: protvirt: Set guest IPL PSW > s390x: protvirt: Move diag 308 data over SIDAD > 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 > s390x: For now add unpack feature to GA1 > > hw/s390x/Makefile.objs | 1 + > hw/s390x/ipl.c | 80 +++++++++++++- > hw/s390x/ipl.h | 33 ++++++ > hw/s390x/pv.c | 160 ++++++++++++++++++++++++++++ > hw/s390x/pv.h | 40 +++++++ > hw/s390x/s390-virtio-ccw.c | 136 ++++++++++++++++++++++- > hw/s390x/sclp.c | 17 +++ > include/hw/s390x/s390-virtio-ccw.h | 1 + > include/hw/s390x/sclp.h | 2 + > linux-headers/linux/kvm.h | 48 ++++++++- > target/s390x/cpu.c | 41 +++++-- > target/s390x/cpu.h | 8 +- > target/s390x/cpu_features_def.inc.h | 1 + > target/s390x/diag.c | 63 +++++++++-- > target/s390x/gen-features.c | 1 + > target/s390x/helper.c | 4 + > target/s390x/ioinst.c | 113 ++++++++++++++------ > target/s390x/kvm-stub.c | 10 +- > target/s390x/kvm.c | 89 ++++++++++++++-- > target/s390x/kvm_s390x.h | 6 +- > target/s390x/mmu_helper.c | 9 ++ > target/s390x/sigp.c | 1 + > 22 files changed, 789 insertions(+), 75 deletions(-) > create mode 100644 hw/s390x/pv.c > create mode 100644 hw/s390x/pv.h > -ENODOC; can you add something under docs/ that describes how you configure a pv guest and what the initialization/teardown flow is?