[PATCH v6 00/18] s390x: Protected Virtualization support

Janosch Frank posted 18 patches 5 years, 8 months ago
Test docker-quick@centos7 failed
Test FreeBSD failed
Test docker-mingw@fedora failed
Test checkpatch failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200304114231.23493-1-frankja@linux.ibm.com
Maintainers: Cornelia Huck <cohuck@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Halil Pasic <pasic@linux.ibm.com>, Thomas Huth <thuth@redhat.com>, David Hildenbrand <david@redhat.com>, Richard Henderson <rth@twiddle.net>, "Michael S. Tsirkin" <mst@redhat.com>
There is a newer version of this series
docs/system/index.rst               |   1 +
docs/system/protvirt.rst            |  57 +++++++++++
hw/s390x/Makefile.objs              |   1 +
hw/s390x/ipl.c                      |  80 ++++++++++++++-
hw/s390x/ipl.h                      |  34 +++++++
hw/s390x/pv.c                       | 106 ++++++++++++++++++++
hw/s390x/pv.h                       |  34 +++++++
hw/s390x/s390-virtio-ccw.c          | 145 +++++++++++++++++++++++++++-
hw/s390x/sclp.c                     |  17 ++++
include/hw/s390x/s390-virtio-ccw.h  |   1 +
include/hw/s390x/sclp.h             |   2 +
linux-headers/linux/kvm.h           |  45 ++++++++-
pc-bios/s390-ccw/jump2ipl.c         |   1 +
pc-bios/s390-ccw/main.c             |   8 +-
pc-bios/s390-ccw/netmain.c          |   1 +
pc-bios/s390-ccw/s390-arch.h        |  10 +-
pc-bios/s390-ccw/s390-ccw.h         |   1 +
target/s390x/cpu.c                  |  27 ++++--
target/s390x/cpu.h                  |   8 +-
target/s390x/cpu_features_def.inc.h |   1 +
target/s390x/diag.c                 |  60 ++++++++++--
target/s390x/gen-features.c         |   1 +
target/s390x/helper.c               |   4 +
target/s390x/ioinst.c               | 113 +++++++++++++++-------
target/s390x/kvm.c                  |  54 ++++++++++-
target/s390x/kvm_s390x.h            |   2 +
target/s390x/mmu_helper.c           |  14 +++
target/s390x/sigp.c                 |   1 +
28 files changed, 762 insertions(+), 67 deletions(-)
create mode 100644 docs/system/protvirt.rst
create mode 100644 hw/s390x/pv.c
create mode 100644 hw/s390x/pv.h
[PATCH v6 00/18] s390x: Protected Virtualization support
Posted by Janosch Frank 5 years, 8 months ago
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.

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 (17):
  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: 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 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
  docs: Add protvirt docs
  pc-bios: s390x: Save iplb location in lowcore

 docs/system/index.rst               |   1 +
 docs/system/protvirt.rst            |  57 +++++++++++
 hw/s390x/Makefile.objs              |   1 +
 hw/s390x/ipl.c                      |  80 ++++++++++++++-
 hw/s390x/ipl.h                      |  34 +++++++
 hw/s390x/pv.c                       | 106 ++++++++++++++++++++
 hw/s390x/pv.h                       |  34 +++++++
 hw/s390x/s390-virtio-ccw.c          | 145 +++++++++++++++++++++++++++-
 hw/s390x/sclp.c                     |  17 ++++
 include/hw/s390x/s390-virtio-ccw.h  |   1 +
 include/hw/s390x/sclp.h             |   2 +
 linux-headers/linux/kvm.h           |  45 ++++++++-
 pc-bios/s390-ccw/jump2ipl.c         |   1 +
 pc-bios/s390-ccw/main.c             |   8 +-
 pc-bios/s390-ccw/netmain.c          |   1 +
 pc-bios/s390-ccw/s390-arch.h        |  10 +-
 pc-bios/s390-ccw/s390-ccw.h         |   1 +
 target/s390x/cpu.c                  |  27 ++++--
 target/s390x/cpu.h                  |   8 +-
 target/s390x/cpu_features_def.inc.h |   1 +
 target/s390x/diag.c                 |  60 ++++++++++--
 target/s390x/gen-features.c         |   1 +
 target/s390x/helper.c               |   4 +
 target/s390x/ioinst.c               | 113 +++++++++++++++-------
 target/s390x/kvm.c                  |  54 ++++++++++-
 target/s390x/kvm_s390x.h            |   2 +
 target/s390x/mmu_helper.c           |  14 +++
 target/s390x/sigp.c                 |   1 +
 28 files changed, 762 insertions(+), 67 deletions(-)
 create mode 100644 docs/system/protvirt.rst
 create mode 100644 hw/s390x/pv.c
 create mode 100644 hw/s390x/pv.h

-- 
2.20.1


Re: [PATCH v6 00/18] s390x: Protected Virtualization support
Posted by David Hildenbrand 5 years, 8 months ago
On 04.03.20 12:42, Janosch Frank 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.
> 

BTW, I can't find any RBs from IBM folks. Similar to the kernel part, I
think it would be a good idea if some of your peers could review this as
well (either upstream or before you send out). Would make my life most
probably a little easier ...


-- 
Thanks,

David / dhildenb


Re: [PATCH v6 00/18] s390x: Protected Virtualization support
Posted by Christian Borntraeger 5 years, 8 months ago

On 04.03.20 18:15, David Hildenbrand wrote:
> On 04.03.20 12:42, Janosch Frank 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.
>>
> 
> BTW, I can't find any RBs from IBM folks. Similar to the kernel part, I
> think it would be a good idea if some of your peers could review this as
> well (either upstream or before you send out). Would make my life most
> probably a little easier ...

Yes, its on my list of things todo. Regarding the kernel I found it odd
to send around Janoschs Patches reworked and then give a RB myself. I certainly
did a lot of review for them.