mbox series

[v6,0/5] s390x: vfio-ap: guest dedicated crypto adapters

Message ID 1530312483-23864-1-git-send-email-akrowiak@linux.vnet.ibm.com
Headers show
Series s390x: vfio-ap: guest dedicated crypto adapters | expand

Message

Tony Krowiak June 29, 2018, 10:47 p.m. UTC
From: Tony Krowiak <akrowiak@linux.ibm.com>

This patch series is the QEMU counterpart to the KVM/kernel support for 
guest dedicated crypto adapters. The KVM/kernel model is built on the 
VFIO mediated device framework and provides the infrastructure for 
granting exclusive guest access to crypto devices installed on the linux 
host. This patch series introduces a new QEMU command line option, QEMU 
object model and CPU model features to exploit the KVM/kernel model.

See the detailed specifications for AP virtualization provided by this 
patch set in docs/vfio-ap.txt for a more complete discussion of the 
design introduced by this patch series.

Note: This series implements the minimal viable product (MVP) and does not
      provide support for hot plug/unplug or migration. The goal
      of the MVP model is to solidify a base upon which these additional 
      features will be built.

--
v5 => v6 Change log:
===================
* Added reset handling fo vfio-ap device
* Added a bridge/bus to AP device object model - thanks to Halil Pasic

v4 => v5 Change log:
===================
* Added MAINTAINERS entries for VFIO AP
* Added explanation for why we are only supporting zEC12 and newer CPU 
  models.
* Changed CPU model feature qci=on|off to apqci=on|off
* Misc. minor changes

v3 => v4 Change log:
===================
* Made vfio-ap device unpluggable for now
* Renamed command line CPU model feature for QCI: qci=on -> apqci=on
* Removed call to KVM_S390_VM_CRYPTO_INTERPRET_AP ioctl - ioctl was 
  removed from kernel and AP instruction interpretation is set from the
  VFIO device driver
* Added check to ensure only one vfio-ap device can be configured per 
  guest
* Removed AP instruction interception handlers: AP instructions will be 
  interpreted by default if AP facilities are installed to handle the case
  where feature ap=on and no vfio-ap device is configured for the guest.


Tony Krowiak (5):
  linux-headers: linux header updates for AP support
  s390x/cpumodel: Set up CPU model for AP device support
  s390x/ap: base Adjunct Processor (AP) object model
  s390x/vfio: ap: Introduce VFIO AP device
  s390: doc: detailed specifications for AP virtualization

 MAINTAINERS                       |   14 +
 default-configs/s390x-softmmu.mak |    1 +
 docs/vfio-ap.txt                  |  649 +++++++++++++++++++++++++++++++++++++
 hw/s390x/Makefile.objs            |    2 +
 hw/s390x/ap-bridge.c              |   76 +++++
 hw/s390x/ap-device.c              |   39 +++
 hw/s390x/s390-virtio-ccw.c        |    4 +
 hw/vfio/Makefile.objs             |    1 +
 hw/vfio/ap.c                      |  183 +++++++++++
 include/hw/s390x/ap-bridge.h      |   37 +++
 include/hw/s390x/ap-device.h      |   38 +++
 include/hw/vfio/vfio-common.h     |    1 +
 linux-headers/asm-s390/kvm.h      |    2 +
 linux-headers/linux/vfio.h        |    2 +
 target/s390x/cpu_features.c       |    3 +
 target/s390x/cpu_features_def.h   |    3 +
 target/s390x/cpu_models.c         |    2 +
 target/s390x/gen-features.c       |    3 +
 target/s390x/kvm.c                |    1 +
 19 files changed, 1061 insertions(+), 0 deletions(-)
 create mode 100644 docs/vfio-ap.txt
 create mode 100644 hw/s390x/ap-bridge.c
 create mode 100644 hw/s390x/ap-device.c
 create mode 100644 hw/vfio/ap.c
 create mode 100644 include/hw/s390x/ap-bridge.h
 create mode 100644 include/hw/s390x/ap-device.h

Comments

no-reply@patchew.org July 2, 2018, 1:54 a.m. UTC | #1
Hi,

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

Type: series
Message-id: 1530312483-23864-1-git-send-email-akrowiak@linux.vnet.ibm.com
Subject: [Qemu-devel] [PATCH v6 0/5] s390x: vfio-ap: guest dedicated crypto adapters

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
151e47ee38 s390: doc: detailed specifications for AP virtualization
59c7d58586 s390x/vfio: ap: Introduce VFIO AP device
7ec8925cc0 s390x/ap: base Adjunct Processor (AP) object model
56a56760da s390x/cpumodel: Set up CPU model for AP device support
f4b39498a8 linux-headers: linux header updates for AP support

=== OUTPUT BEGIN ===
Checking PATCH 1/5: linux-headers: linux header updates for AP support...
Checking PATCH 2/5: s390x/cpumodel: Set up CPU model for AP device support...
ERROR: line over 90 characters
#48: FILE: target/s390x/cpu_features.c:43:
+    FEAT_INIT("apqci", S390_FEAT_TYPE_STFL, 12, "Query AP Configuration Information facility"),

total: 1 errors, 0 warnings, 58 lines checked

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

Checking PATCH 3/5: s390x/ap: base Adjunct Processor (AP) object model...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#45: 
new file mode 100644

total: 0 errors, 1 warnings, 229 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 4/5: s390x/vfio: ap: Introduce VFIO AP device...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#69: 
new file mode 100644

total: 0 errors, 1 warnings, 206 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 5/5: s390: doc: detailed specifications for AP virtualization...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#28: 
new file mode 100644

total: 0 errors, 1 warnings, 656 lines checked

Your patch 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


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Anthony Krowiak Aug. 7, 2018, 10:41 p.m. UTC | #2
Ping

On 06/29/2018 06:47 PM, Tony Krowiak wrote:
> From: Tony Krowiak <akrowiak@linux.ibm.com>
>
> This patch series is the QEMU counterpart to the KVM/kernel support for
> guest dedicated crypto adapters. The KVM/kernel model is built on the
> VFIO mediated device framework and provides the infrastructure for
> granting exclusive guest access to crypto devices installed on the linux
> host. This patch series introduces a new QEMU command line option, QEMU
> object model and CPU model features to exploit the KVM/kernel model.
>
> See the detailed specifications for AP virtualization provided by this
> patch set in docs/vfio-ap.txt for a more complete discussion of the
> design introduced by this patch series.
>
> Note: This series implements the minimal viable product (MVP) and does not
>        provide support for hot plug/unplug or migration. The goal
>        of the MVP model is to solidify a base upon which these additional
>        features will be built.
>
> --
> v5 => v6 Change log:
> ===================
> * Added reset handling fo vfio-ap device
> * Added a bridge/bus to AP device object model - thanks to Halil Pasic
>
> v4 => v5 Change log:
> ===================
> * Added MAINTAINERS entries for VFIO AP
> * Added explanation for why we are only supporting zEC12 and newer CPU
>    models.
> * Changed CPU model feature qci=on|off to apqci=on|off
> * Misc. minor changes
>
> v3 => v4 Change log:
> ===================
> * Made vfio-ap device unpluggable for now
> * Renamed command line CPU model feature for QCI: qci=on -> apqci=on
> * Removed call to KVM_S390_VM_CRYPTO_INTERPRET_AP ioctl - ioctl was
>    removed from kernel and AP instruction interpretation is set from the
>    VFIO device driver
> * Added check to ensure only one vfio-ap device can be configured per
>    guest
> * Removed AP instruction interception handlers: AP instructions will be
>    interpreted by default if AP facilities are installed to handle the case
>    where feature ap=on and no vfio-ap device is configured for the guest.
>
>
> Tony Krowiak (5):
>    linux-headers: linux header updates for AP support
>    s390x/cpumodel: Set up CPU model for AP device support
>    s390x/ap: base Adjunct Processor (AP) object model
>    s390x/vfio: ap: Introduce VFIO AP device
>    s390: doc: detailed specifications for AP virtualization
>
>   MAINTAINERS                       |   14 +
>   default-configs/s390x-softmmu.mak |    1 +
>   docs/vfio-ap.txt                  |  649 +++++++++++++++++++++++++++++++++++++
>   hw/s390x/Makefile.objs            |    2 +
>   hw/s390x/ap-bridge.c              |   76 +++++
>   hw/s390x/ap-device.c              |   39 +++
>   hw/s390x/s390-virtio-ccw.c        |    4 +
>   hw/vfio/Makefile.objs             |    1 +
>   hw/vfio/ap.c                      |  183 +++++++++++
>   include/hw/s390x/ap-bridge.h      |   37 +++
>   include/hw/s390x/ap-device.h      |   38 +++
>   include/hw/vfio/vfio-common.h     |    1 +
>   linux-headers/asm-s390/kvm.h      |    2 +
>   linux-headers/linux/vfio.h        |    2 +
>   target/s390x/cpu_features.c       |    3 +
>   target/s390x/cpu_features_def.h   |    3 +
>   target/s390x/cpu_models.c         |    2 +
>   target/s390x/gen-features.c       |    3 +
>   target/s390x/kvm.c                |    1 +
>   19 files changed, 1061 insertions(+), 0 deletions(-)
>   create mode 100644 docs/vfio-ap.txt
>   create mode 100644 hw/s390x/ap-bridge.c
>   create mode 100644 hw/s390x/ap-device.c
>   create mode 100644 hw/vfio/ap.c
>   create mode 100644 include/hw/s390x/ap-bridge.h
>   create mode 100644 include/hw/s390x/ap-device.h
>
Cornelia Huck Aug. 8, 2018, 7:34 a.m. UTC | #3
On Tue, 7 Aug 2018 18:41:29 -0400
Tony Krowiak <akrowiak@linux.ibm.com> wrote:

> Ping

Maybe send a new version when the kernel part is sent again? I don't
think I had any further comments.

> 
> On 06/29/2018 06:47 PM, Tony Krowiak wrote:
> > From: Tony Krowiak <akrowiak@linux.ibm.com>
> >
> > This patch series is the QEMU counterpart to the KVM/kernel support for
> > guest dedicated crypto adapters. The KVM/kernel model is built on the
> > VFIO mediated device framework and provides the infrastructure for
> > granting exclusive guest access to crypto devices installed on the linux
> > host. This patch series introduces a new QEMU command line option, QEMU
> > object model and CPU model features to exploit the KVM/kernel model.
> >
> > See the detailed specifications for AP virtualization provided by this
> > patch set in docs/vfio-ap.txt for a more complete discussion of the
> > design introduced by this patch series.
> >
> > Note: This series implements the minimal viable product (MVP) and does not
> >        provide support for hot plug/unplug or migration. The goal
> >        of the MVP model is to solidify a base upon which these additional
> >        features will be built.
> >
> > --
> > v5 => v6 Change log:
> > ===================
> > * Added reset handling fo vfio-ap device
> > * Added a bridge/bus to AP device object model - thanks to Halil Pasic
> >
> > v4 => v5 Change log:
> > ===================
> > * Added MAINTAINERS entries for VFIO AP
> > * Added explanation for why we are only supporting zEC12 and newer CPU
> >    models.
> > * Changed CPU model feature qci=on|off to apqci=on|off
> > * Misc. minor changes
> >
> > v3 => v4 Change log:
> > ===================
> > * Made vfio-ap device unpluggable for now
> > * Renamed command line CPU model feature for QCI: qci=on -> apqci=on
> > * Removed call to KVM_S390_VM_CRYPTO_INTERPRET_AP ioctl - ioctl was
> >    removed from kernel and AP instruction interpretation is set from the
> >    VFIO device driver
> > * Added check to ensure only one vfio-ap device can be configured per
> >    guest
> > * Removed AP instruction interception handlers: AP instructions will be
> >    interpreted by default if AP facilities are installed to handle the case
> >    where feature ap=on and no vfio-ap device is configured for the guest.
> >
> >
> > Tony Krowiak (5):
> >    linux-headers: linux header updates for AP support
> >    s390x/cpumodel: Set up CPU model for AP device support
> >    s390x/ap: base Adjunct Processor (AP) object model
> >    s390x/vfio: ap: Introduce VFIO AP device
> >    s390: doc: detailed specifications for AP virtualization
> >
> >   MAINTAINERS                       |   14 +
> >   default-configs/s390x-softmmu.mak |    1 +
> >   docs/vfio-ap.txt                  |  649 +++++++++++++++++++++++++++++++++++++
> >   hw/s390x/Makefile.objs            |    2 +
> >   hw/s390x/ap-bridge.c              |   76 +++++
> >   hw/s390x/ap-device.c              |   39 +++
> >   hw/s390x/s390-virtio-ccw.c        |    4 +
> >   hw/vfio/Makefile.objs             |    1 +
> >   hw/vfio/ap.c                      |  183 +++++++++++
> >   include/hw/s390x/ap-bridge.h      |   37 +++
> >   include/hw/s390x/ap-device.h      |   38 +++
> >   include/hw/vfio/vfio-common.h     |    1 +
> >   linux-headers/asm-s390/kvm.h      |    2 +
> >   linux-headers/linux/vfio.h        |    2 +
> >   target/s390x/cpu_features.c       |    3 +
> >   target/s390x/cpu_features_def.h   |    3 +
> >   target/s390x/cpu_models.c         |    2 +
> >   target/s390x/gen-features.c       |    3 +
> >   target/s390x/kvm.c                |    1 +
> >   19 files changed, 1061 insertions(+), 0 deletions(-)
> >   create mode 100644 docs/vfio-ap.txt
> >   create mode 100644 hw/s390x/ap-bridge.c
> >   create mode 100644 hw/s390x/ap-device.c
> >   create mode 100644 hw/vfio/ap.c
> >   create mode 100644 include/hw/s390x/ap-bridge.h
> >   create mode 100644 include/hw/s390x/ap-device.h
> >  
>
Anthony Krowiak Aug. 9, 2018, 4:02 p.m. UTC | #4
On 08/08/2018 03:34 AM, Cornelia Huck wrote:
> On Tue, 7 Aug 2018 18:41:29 -0400
> Tony Krowiak <akrowiak@linux.ibm.com> wrote:
>
>> Ping
> Maybe send a new version when the kernel part is sent again? I don't
> think I had any further comments.

I'll consider that.

>
>> On 06/29/2018 06:47 PM, Tony Krowiak wrote:
>>> From: Tony Krowiak <akrowiak@linux.ibm.com>
>>>
>>> This patch series is the QEMU counterpart to the KVM/kernel support for
>>> guest dedicated crypto adapters. The KVM/kernel model is built on the
>>> VFIO mediated device framework and provides the infrastructure for
>>> granting exclusive guest access to crypto devices installed on the linux
>>> host. This patch series introduces a new QEMU command line option, QEMU
>>> object model and CPU model features to exploit the KVM/kernel model.
>>>
>>> See the detailed specifications for AP virtualization provided by this
>>> patch set in docs/vfio-ap.txt for a more complete discussion of the
>>> design introduced by this patch series.
>>>
>>> Note: This series implements the minimal viable product (MVP) and does not
>>>         provide support for hot plug/unplug or migration. The goal
>>>         of the MVP model is to solidify a base upon which these additional
>>>         features will be built.
>>>
>>> --
>>> v5 => v6 Change log:
>>> ===================
>>> * Added reset handling fo vfio-ap device
>>> * Added a bridge/bus to AP device object model - thanks to Halil Pasic
>>>
>>> v4 => v5 Change log:
>>> ===================
>>> * Added MAINTAINERS entries for VFIO AP
>>> * Added explanation for why we are only supporting zEC12 and newer CPU
>>>     models.
>>> * Changed CPU model feature qci=on|off to apqci=on|off
>>> * Misc. minor changes
>>>
>>> v3 => v4 Change log:
>>> ===================
>>> * Made vfio-ap device unpluggable for now
>>> * Renamed command line CPU model feature for QCI: qci=on -> apqci=on
>>> * Removed call to KVM_S390_VM_CRYPTO_INTERPRET_AP ioctl - ioctl was
>>>     removed from kernel and AP instruction interpretation is set from the
>>>     VFIO device driver
>>> * Added check to ensure only one vfio-ap device can be configured per
>>>     guest
>>> * Removed AP instruction interception handlers: AP instructions will be
>>>     interpreted by default if AP facilities are installed to handle the case
>>>     where feature ap=on and no vfio-ap device is configured for the guest.
>>>
>>>
>>> Tony Krowiak (5):
>>>     linux-headers: linux header updates for AP support
>>>     s390x/cpumodel: Set up CPU model for AP device support
>>>     s390x/ap: base Adjunct Processor (AP) object model
>>>     s390x/vfio: ap: Introduce VFIO AP device
>>>     s390: doc: detailed specifications for AP virtualization
>>>
>>>    MAINTAINERS                       |   14 +
>>>    default-configs/s390x-softmmu.mak |    1 +
>>>    docs/vfio-ap.txt                  |  649 +++++++++++++++++++++++++++++++++++++
>>>    hw/s390x/Makefile.objs            |    2 +
>>>    hw/s390x/ap-bridge.c              |   76 +++++
>>>    hw/s390x/ap-device.c              |   39 +++
>>>    hw/s390x/s390-virtio-ccw.c        |    4 +
>>>    hw/vfio/Makefile.objs             |    1 +
>>>    hw/vfio/ap.c                      |  183 +++++++++++
>>>    include/hw/s390x/ap-bridge.h      |   37 +++
>>>    include/hw/s390x/ap-device.h      |   38 +++
>>>    include/hw/vfio/vfio-common.h     |    1 +
>>>    linux-headers/asm-s390/kvm.h      |    2 +
>>>    linux-headers/linux/vfio.h        |    2 +
>>>    target/s390x/cpu_features.c       |    3 +
>>>    target/s390x/cpu_features_def.h   |    3 +
>>>    target/s390x/cpu_models.c         |    2 +
>>>    target/s390x/gen-features.c       |    3 +
>>>    target/s390x/kvm.c                |    1 +
>>>    19 files changed, 1061 insertions(+), 0 deletions(-)
>>>    create mode 100644 docs/vfio-ap.txt
>>>    create mode 100644 hw/s390x/ap-bridge.c
>>>    create mode 100644 hw/s390x/ap-device.c
>>>    create mode 100644 hw/vfio/ap.c
>>>    create mode 100644 include/hw/s390x/ap-bridge.h
>>>    create mode 100644 include/hw/s390x/ap-device.h
>>>