mbox series

[v2,0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318

Message ID 20200515222032.18838-1-walling@linux.ibm.com
Headers show
Series s390: Extended-Length SCCB & DIAGNOSE 0x318 | expand

Message

Collin Walling May 15, 2020, 10:20 p.m. UTC
Changelog:

    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: check sccb len before filling in data
  s390/sclp: rework sclp boundary and length checks
  s390/sclp: read sccb from mem based on sccb length
  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/s390-virtio-ccw.c          |  45 +++++++++++
 hw/s390x/sclp.c                     | 117 ++++++++++++++++++++++------
 include/hw/s390x/s390-virtio-ccw.h  |   1 +
 include/hw/s390x/sclp.h             |   4 +
 linux-headers/asm-s390/kvm.h        |   4 +
 target/s390x/cpu.c                  |  23 ++++++
 target/s390x/cpu.h                  |   4 +
 target/s390x/cpu_features.h         |   1 +
 target/s390x/cpu_features_def.inc.h |   4 +
 target/s390x/cpu_models.c           |   1 +
 target/s390x/gen-features.c         |   2 +
 target/s390x/kvm-stub.c             |  10 +++
 target/s390x/kvm.c                  |  44 +++++++++++
 target/s390x/kvm_s390x.h            |   2 +
 14 files changed, 237 insertions(+), 25 deletions(-)

Comments

no-reply@patchew.org May 16, 2020, 6:41 a.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/20200515222032.18838-1-walling@linux.ibm.com/



Hi,

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

Message-id: 20200515222032.18838-1-walling@linux.ibm.com
Subject: [PATCH v2 0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318
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'
f8cb821 s390: guest support for diagnose 0x318
6b87c59 s390/kvm: header sync for diag318
af06627 s390/sclp: add extended-length sccb support for kvm guest
39b848c s390/sclp: use cpu offset to locate cpu entries
1dd8e02 s390/sclp: read sccb from mem based on sccb length
aad956d s390/sclp: rework sclp boundary and length checks
428b1e4 s390/sclp: check sccb len before filling in data
850e1b8 s390/sclp: get machine once during read scp/cpu info

=== OUTPUT BEGIN ===
1/8 Checking commit 850e1b88729f (s390/sclp: get machine once during read scp/cpu info)
2/8 Checking commit 428b1e46e016 (s390/sclp: check sccb len before filling in data)
WARNING: line over 80 characters
#23: FILE: hw/s390x/sclp.c:78:
+    if (be16_to_cpu(sccb->h.length) < (sizeof(ReadInfo) + cpu_count * sizeof(CPUEntry))) {

ERROR: line over 90 characters
#48: FILE: hw/s390x/sclp.c:137:
+    if (be16_to_cpu(sccb->h.length) < (sizeof(ReadCpuInfo) + cpu_count * sizeof(CPUEntry))) {

total: 1 errors, 1 warnings, 45 lines checked

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

3/8 Checking commit aad956d5ac92 (s390/sclp: rework sclp boundary and length checks)
4/8 Checking commit 1dd8e02af7b2 (s390/sclp: read sccb from mem based on sccb length)
5/8 Checking commit 39b848c3be15 (s390/sclp: use cpu offset to locate cpu entries)
6/8 Checking commit af06627cc5fb (s390/sclp: add extended-length sccb support for kvm guest)
WARNING: line over 80 characters
#91: FILE: hw/s390x/sclp.c:137:
+        warn_report("insufficient sccb size to store full read scp info response");

WARNING: line over 80 characters
#115: FILE: target/s390x/cpu_features_def.inc.h:100:
+DEF_FEAT(EXTENDED_LENGTH_SCCB, "els", STFL, 140, "Extended-length SCCB facility")

total: 0 errors, 2 warnings, 76 lines checked

Patch 6/8 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
7/8 Checking commit 6b87c5992768 (s390/kvm: header sync for diag318)
8/8 Checking commit f8cb821134a7 (s390: guest support for diagnose 0x318)
ERROR: line over 90 characters
#226: FILE: target/s390x/cpu_features_def.inc.h:125:
+/* Features exposed via SCLP SCCB Facilities byte 134 (bit numbers relative to byte-134) */

WARNING: line over 80 characters
#227: FILE: target/s390x/cpu_features_def.inc.h:126:
+DEF_FEAT(DIAG_318, "diag_318", SCLP_FAC134, 0, "Control program name and version codes")

total: 1 errors, 1 warnings, 262 lines checked

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

=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200515222032.18838-1-walling@linux.ibm.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Collin Walling May 18, 2020, 5:34 p.m. UTC | #2
On 5/16/20 2:41 AM, no-reply@patchew.org wrote:
> Patchew URL: https://patchew.org/QEMU/20200515222032.18838-1-walling@linux.ibm.com/
> 
> 
> 
> Hi,
> 
> This series seems to have some coding style problems. See output below for
> more information:
> 
> Message-id: 20200515222032.18838-1-walling@linux.ibm.com
> Subject: [PATCH v2 0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318
> 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'
> f8cb821 s390: guest support for diagnose 0x318
> 6b87c59 s390/kvm: header sync for diag318
> af06627 s390/sclp: add extended-length sccb support for kvm guest
> 39b848c s390/sclp: use cpu offset to locate cpu entries
> 1dd8e02 s390/sclp: read sccb from mem based on sccb length
> aad956d s390/sclp: rework sclp boundary and length checks
> 428b1e4 s390/sclp: check sccb len before filling in data
> 850e1b8 s390/sclp: get machine once during read scp/cpu info
> 
> === OUTPUT BEGIN ===
> 1/8 Checking commit 850e1b88729f (s390/sclp: get machine once during read scp/cpu info)
> 2/8 Checking commit 428b1e46e016 (s390/sclp: check sccb len before filling in data)
> WARNING: line over 80 characters
> #23: FILE: hw/s390x/sclp.c:78:
> +    if (be16_to_cpu(sccb->h.length) < (sizeof(ReadInfo) + cpu_count * sizeof(CPUEntry))) {
> 
> ERROR: line over 90 characters
> #48: FILE: hw/s390x/sclp.c:137:
> +    if (be16_to_cpu(sccb->h.length) < (sizeof(ReadCpuInfo) + cpu_count * sizeof(CPUEntry))) {
> 
> total: 1 errors, 1 warnings, 45 lines checked
> 
> Patch 2/8 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 
> 3/8 Checking commit aad956d5ac92 (s390/sclp: rework sclp boundary and length checks)
> 4/8 Checking commit 1dd8e02af7b2 (s390/sclp: read sccb from mem based on sccb length)
> 5/8 Checking commit 39b848c3be15 (s390/sclp: use cpu offset to locate cpu entries)
> 6/8 Checking commit af06627cc5fb (s390/sclp: add extended-length sccb support for kvm guest)
> WARNING: line over 80 characters
> #91: FILE: hw/s390x/sclp.c:137:
> +        warn_report("insufficient sccb size to store full read scp info response");
> 
> WARNING: line over 80 characters
> #115: FILE: target/s390x/cpu_features_def.inc.h:100:
> +DEF_FEAT(EXTENDED_LENGTH_SCCB, "els", STFL, 140, "Extended-length SCCB facility")
> 
> total: 0 errors, 2 warnings, 76 lines checked
> 
> Patch 6/8 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 7/8 Checking commit 6b87c5992768 (s390/kvm: header sync for diag318)
> 8/8 Checking commit f8cb821134a7 (s390: guest support for diagnose 0x318)
> ERROR: line over 90 characters
> #226: FILE: target/s390x/cpu_features_def.inc.h:125:
> +/* Features exposed via SCLP SCCB Facilities byte 134 (bit numbers relative to byte-134) */
> 
> WARNING: line over 80 characters
> #227: FILE: target/s390x/cpu_features_def.inc.h:126:
> +DEF_FEAT(DIAG_318, "diag_318", SCLP_FAC134, 0, "Control program name and version codes")
> 
> total: 1 errors, 1 warnings, 262 lines checked
> 
> Patch 8/8 has style problems, please review.  If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 
> === OUTPUT END ===
> 
> Test command exited with code: 1
> 
> 
> The full log is available at
> http://patchew.org/logs/20200515222032.18838-1-walling@linux.ibm.com/testing.checkpatch/?type=message.
> ---
> Email generated automatically by Patchew [https://patchew.org/].
> Please send your feedback to patchew-devel@redhat.com
> 

I'll have these fixed for next round, but there's not much I can do with
regards to the styling in cpu_features_def.inc.h :/
David Hildenbrand May 18, 2020, 5:51 p.m. UTC | #3
> Am 18.05.2020 um 19:34 schrieb Collin Walling <walling@linux.ibm.com>:
> 
> On 5/16/20 2:41 AM, no-reply@patchew.org wrote:
>> Patchew URL: https://patchew.org/QEMU/20200515222032.18838-1-walling@linux.ibm.com/
>> 
>> 
>> 
>> Hi,
>> 
>> This series seems to have some coding style problems. See output below for
>> more information:
>> 
>> Message-id: 20200515222032.18838-1-walling@linux.ibm.com
>> Subject: [PATCH v2 0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318
>> 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'
>> f8cb821 s390: guest support for diagnose 0x318
>> 6b87c59 s390/kvm: header sync for diag318
>> af06627 s390/sclp: add extended-length sccb support for kvm guest
>> 39b848c s390/sclp: use cpu offset to locate cpu entries
>> 1dd8e02 s390/sclp: read sccb from mem based on sccb length
>> aad956d s390/sclp: rework sclp boundary and length checks
>> 428b1e4 s390/sclp: check sccb len before filling in data
>> 850e1b8 s390/sclp: get machine once during read scp/cpu info
>> 
>> === OUTPUT BEGIN ===
>> 1/8 Checking commit 850e1b88729f (s390/sclp: get machine once during read scp/cpu info)
>> 2/8 Checking commit 428b1e46e016 (s390/sclp: check sccb len before filling in data)
>> WARNING: line over 80 characters
>> #23: FILE: hw/s390x/sclp.c:78:
>> +    if (be16_to_cpu(sccb->h.length) < (sizeof(ReadInfo) + cpu_count * sizeof(CPUEntry))) {
>> 
>> ERROR: line over 90 characters
>> #48: FILE: hw/s390x/sclp.c:137:
>> +    if (be16_to_cpu(sccb->h.length) < (sizeof(ReadCpuInfo) + cpu_count * sizeof(CPUEntry))) {
>> 
>> total: 1 errors, 1 warnings, 45 lines checked
>> 
>> Patch 2/8 has style problems, please review.  If any of these errors
>> are false positives report them to the maintainer, see
>> CHECKPATCH in MAINTAINERS.
>> 
>> 3/8 Checking commit aad956d5ac92 (s390/sclp: rework sclp boundary and length checks)
>> 4/8 Checking commit 1dd8e02af7b2 (s390/sclp: read sccb from mem based on sccb length)
>> 5/8 Checking commit 39b848c3be15 (s390/sclp: use cpu offset to locate cpu entries)
>> 6/8 Checking commit af06627cc5fb (s390/sclp: add extended-length sccb support for kvm guest)
>> WARNING: line over 80 characters
>> #91: FILE: hw/s390x/sclp.c:137:
>> +        warn_report("insufficient sccb size to store full read scp info response");
>> 
>> WARNING: line over 80 characters
>> #115: FILE: target/s390x/cpu_features_def.inc.h:100:
>> +DEF_FEAT(EXTENDED_LENGTH_SCCB, "els", STFL, 140, "Extended-length SCCB facility")
>> 
>> total: 0 errors, 2 warnings, 76 lines checked
>> 
>> Patch 6/8 has style problems, please review.  If any of these errors
>> are false positives report them to the maintainer, see
>> CHECKPATCH in MAINTAINERS.
>> 7/8 Checking commit 6b87c5992768 (s390/kvm: header sync for diag318)
>> 8/8 Checking commit f8cb821134a7 (s390: guest support for diagnose 0x318)
>> ERROR: line over 90 characters
>> #226: FILE: target/s390x/cpu_features_def.inc.h:125:
>> +/* Features exposed via SCLP SCCB Facilities byte 134 (bit numbers relative to byte-134) */
>> 
>> WARNING: line over 80 characters
>> #227: FILE: target/s390x/cpu_features_def.inc.h:126:
>> +DEF_FEAT(DIAG_318, "diag_318", SCLP_FAC134, 0, "Control program name and version codes")
>> 
>> total: 1 errors, 1 warnings, 262 lines checked
>> 
>> Patch 8/8 has style problems, please review.  If any of these errors
>> are false positives report them to the maintainer, see
>> CHECKPATCH in MAINTAINERS.
>> 
>> === OUTPUT END ===
>> 
>> Test command exited with code: 1
>> 
>> 
>> The full log is available at
>> http://patchew.org/logs/20200515222032.18838-1-walling@linux.ibm.com/testing.checkpatch/?type=message.
>> ---
>> Email generated automatically by Patchew [https://patchew.org/].
>> Please send your feedback to patchew-devel@redhat.com
>> 
> 
> I'll have these fixed for next round, but there's not much I can do with
> regards to the styling in cpu_features_def.inc.h :/

They are perfectly fine :)

> 
> -- 
> Regards,
> Collin
> 
> Stay safe and stay healthy
>