mbox series

[v11,00/16] s390x: Protected Virtualization support

Message ID 20200319131921.2367-1-frankja@linux.ibm.com
Headers show
Series s390x: Protected Virtualization support | expand

Message

Janosch Frank March 19, 2020, 1:19 p.m. UTC
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

Comments

Cornelia Huck March 23, 2020, 5:13 p.m. UTC | #1
On Thu, 19 Mar 2020 09:19:05 -0400
Janosch Frank <frankja@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.)
no-reply@patchew.org March 23, 2020, 7:39 p.m. UTC | #2
Patchew URL: https://patchew.org/QEMU/20200319131921.2367-1-frankja@linux.ibm.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [PATCH v11 00/16] s390x: Protected Virtualization support
Message-id: 20200319131921.2367-1-frankja@linux.ibm.com
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
3496cd0 s390x: Add unpack facility feature to GA1
03d40c1 docs: system: Add protvirt docs
4f74e2a s390x: protvirt: Handle SIGP store status correctly
243e681 s390x: protvirt: Move IO control structures over SIDA
05aa2a2 s390x: protvirt: Disable address checks for PV guest IO emulation
9430059 s390x: protvirt: Move diag 308 data over SIDA
ca7e150 s390x: protvirt: Set guest IPL PSW
7214ecd s390x: protvirt: SCLP interpretation
6084fa0 s390x: protvirt: Move STSI data over SIDAD
12a2848 s390x: Add SIDA memory ops
f051c5a s390x: protvirt: KVM intercept changes
4a13191 s390x: protvirt: Inhibit balloon when switching to protected mode
d1afa39 s390x: protvirt: Add migration blocker
2b79f0e s390x: protvirt: Support unpack facility
cddc155 Sync pv
481c64f s390x: Move diagnose 308 subcodes and rcs into ipl.h

=== OUTPUT BEGIN ===
1/16 Checking commit 481c64f251a0 (s390x: Move diagnose 308 subcodes and rcs into ipl.h)
2/16 Checking commit cddc15575b09 (Sync pv)
3/16 Checking commit 2b79f0e44dc7 (s390x: protvirt: Support unpack facility)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#326: 
new file mode 100644

WARNING: line over 80 characters
#664: FILE: include/hw/s390x/pv.h:48:
+static inline int s390_pv_set_sec_parms(uint64_t origin, uint64_t length) { return 0; }

ERROR: line over 90 characters
#665: FILE: include/hw/s390x/pv.h:49:
+static inline int s390_pv_unpack(uint64_t addr, uint64_t size, uint64_t tweak) { return 0; }

WARNING: line over 80 characters
#765: FILE: target/s390x/diag.c:122:
+        valid = subcode == DIAG308_PV_SET ? iplb_valid_pv(iplb) : iplb_valid(iplb);

total: 1 errors, 3 warnings, 731 lines checked

Patch 3/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

4/16 Checking commit d1afa39ebf53 (s390x: protvirt: Add migration blocker)
5/16 Checking commit 4a13191b1551 (s390x: protvirt: Inhibit balloon when switching to protected mode)
6/16 Checking commit f051c5a6118f (s390x: protvirt: KVM intercept changes)
ERROR: switch and case should be at the same indent
#50: FILE: target/s390x/kvm.c:1701:
     switch (icpt_code) {
[...]
+        case ICPT_PV_INSTR:
+        case ICPT_PV_INSTR_NOTIFICATION:

total: 1 errors, 0 warnings, 16 lines checked

Patch 6/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

7/16 Checking commit 12a284827066 (s390x: Add SIDA memory ops)
8/16 Checking commit 6084fa081454 (s390x: protvirt: Move STSI data over SIDAD)
9/16 Checking commit 7214ecde2623 (s390x: protvirt: SCLP interpretation)
10/16 Checking commit ca7e150313c9 (s390x: protvirt: Set guest IPL PSW)
11/16 Checking commit 94300597bcf9 (s390x: protvirt: Move diag 308 data over SIDA)
12/16 Checking commit 05aa2a2c74ca (s390x: protvirt: Disable address checks for PV guest IO emulation)
13/16 Checking commit 243e681cda71 (s390x: protvirt: Move IO control structures over SIDA)
14/16 Checking commit 4f74e2afdb60 (s390x: protvirt: Handle SIGP store status correctly)
15/16 Checking commit 03d40c1885fc (docs: system: Add protvirt docs)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#17: 
new file mode 100644

total: 0 errors, 1 warnings, 68 lines checked

Patch 15/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
16/16 Checking commit 3496cd05ab8a (s390x: Add unpack facility feature to GA1)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200319131921.2367-1-frankja@linux.ibm.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com