All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Tony Krowiak <akrowiak@linux.vnet.ibm.com>,
	linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org,
	kvm@vger.kernel.org
Cc: freude@de.ibm.com, schwidefsky@de.ibm.com,
	heiko.carstens@de.ibm.com, borntraeger@de.ibm.com,
	cohuck@redhat.com, kwankhede@nvidia.com,
	bjsdjshi@linux.vnet.ibm.com, pbonzini@redhat.com,
	alex.williamson@redhat.com, pmorel@linux.vnet.ibm.com,
	alifm@linux.vnet.ibm.com, mjrosato@linux.vnet.ibm.com,
	jjherne@linux.vnet.ibm.com, thuth@redhat.com,
	pasic@linux.vnet.ibm.com, berrange@redhat.com,
	fiuczy@linux.vnet.ibm.com, buendgen@de.ibm.com
Subject: Re: [PATCH v4 01/15] s390: zcrypt: externalize AP instructions available function
Date: Fri, 4 May 2018 09:19:45 +0200	[thread overview]
Message-ID: <7e537cfc-5d67-c188-2890-191608cb7b4f@redhat.com> (raw)
In-Reply-To: <1523827345-11600-2-git-send-email-akrowiak@linux.vnet.ibm.com>

On 15.04.2018 23:22, Tony Krowiak wrote:
> If the AP instructions are not available on the linux host, then
> AP devices can not be interpreted by the SIE. The AP bus has a

This statement is wrong. The instructions can be interpreted by SIE e.g.
if there are no devices assigned to a guest. This is e.g. the case for
!CONFIG_ZCRYPT.

Also, doesn't this directly imply that the other execution control
should also not be used ("intercept AP instuctions"). This would be bad.
Just because !CONFIG_ZCRYPT does not imply that you can't emulate AP
devices for a guest.

Why isn't it sufficient to glue CONFIG_ZCRYPT to vfio-ap? This would
make more sense in my opinion. You have no "host devices" that you can
"pass through". But you can still emulate devices or emulate an empty bus.

> function it uses to determine if the AP instructions are
> available. This patch provides a new function that wraps the
> AP bus's function to externalize it for use by KVM.
> 
> Signed-off-by: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
> Reviewed-by: Pierre Morel <pmorel@linux.vnet.ibm.com>
> Reviewed-by: Harald Freudenberger <freude@linux.vnet.ibm.com>
> ---
>  arch/s390/include/asm/ap.h     |    7 +++++++
>  arch/s390/include/asm/kvm-ap.h |   23 +++++++++++++++++++++++
>  arch/s390/kvm/Makefile         |    2 +-
>  arch/s390/kvm/kvm-ap.c         |   21 +++++++++++++++++++++
>  drivers/s390/crypto/ap_bus.c   |    6 ++++++
>  5 files changed, 58 insertions(+), 1 deletions(-)
>  create mode 100644 arch/s390/include/asm/kvm-ap.h
>  create mode 100644 arch/s390/kvm/kvm-ap.c
> 
> diff --git a/arch/s390/include/asm/ap.h b/arch/s390/include/asm/ap.h
> index c1bedb4..7773bfd 100644
> --- a/arch/s390/include/asm/ap.h
> +++ b/arch/s390/include/asm/ap.h
> @@ -120,4 +120,11 @@ struct ap_queue_status ap_queue_irq_ctrl(ap_qid_t qid,
>  					 struct ap_qirq_ctrl qirqctrl,
>  					 void *ind);
>  
> +/**
> + * ap_instructions_installed() - Tests whether AP instructions are installed
> + *
> + * Returns 1 if the AP instructions are installed, otherwise; returns 0
> + */
> +int ap_instructions_installed(void);
> +
>  #endif /* _ASM_S390_AP_H_ */
> diff --git a/arch/s390/include/asm/kvm-ap.h b/arch/s390/include/asm/kvm-ap.h
> new file mode 100644
> index 0000000..84412a9
> --- /dev/null
> +++ b/arch/s390/include/asm/kvm-ap.h
> @@ -0,0 +1,23 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Adjunct Processor (AP) configuration management for KVM guests
> + *
> + * Copyright IBM Corp. 2018
> + *
> + * Author(s): Tony Krowiak <akrowia@linux.vnet.ibm.com>
> + */
> +
> +#ifndef _ASM_KVM_AP
> +#define _ASM_KVM_AP
> +
> +/**
> + * kvm_ap_instructions_installed()
> + *
> + * Tests whether AP instructions are installed on the linux host
> + *
> + * Returns 1 if the AP instructions are installed on the host, otherwise;
> + * returns 0
> + */
> +int kvm_ap_instructions_installed(void);
> +
> +#endif /* _ASM_KVM_AP */
> diff --git a/arch/s390/kvm/Makefile b/arch/s390/kvm/Makefile
> index 05ee90a..1876bfe 100644
> --- a/arch/s390/kvm/Makefile
> +++ b/arch/s390/kvm/Makefile
> @@ -9,6 +9,6 @@ common-objs = $(KVM)/kvm_main.o $(KVM)/eventfd.o  $(KVM)/async_pf.o $(KVM)/irqch
>  ccflags-y := -Ivirt/kvm -Iarch/s390/kvm
>  
>  kvm-objs := $(common-objs) kvm-s390.o intercept.o interrupt.o priv.o sigp.o
> -kvm-objs += diag.o gaccess.o guestdbg.o vsie.o
> +kvm-objs += diag.o gaccess.o guestdbg.o vsie.o kvm-ap.o
>  
>  obj-$(CONFIG_KVM) += kvm.o
> diff --git a/arch/s390/kvm/kvm-ap.c b/arch/s390/kvm/kvm-ap.c
> new file mode 100644
> index 0000000..1267588
> --- /dev/null
> +++ b/arch/s390/kvm/kvm-ap.c
> @@ -0,0 +1,21 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Adjunct Processor (AP) configuration management for KVM guests
> + *
> + * Copyright IBM Corp. 2018
> + *
> + * Author(s): Tony Krowiak <akrowia@linux.vnet.ibm.com>
> + */
> +#include <linux/kernel.h>
> +#include <asm/kvm-ap.h>
> +#include <asm/ap.h>
> +
> +int kvm_ap_instructions_installed(void)
> +{
> +#ifdef CONFIG_ZCRYPT
> +	return ap_instructions_installed();
> +#else
> +	return 0;
> +#endif
> +}
> +EXPORT_SYMBOL(kvm_ap_instructions_installed);
> diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c
> index 35a0c2b..9d108b6 100644
> --- a/drivers/s390/crypto/ap_bus.c
> +++ b/drivers/s390/crypto/ap_bus.c
> @@ -210,6 +210,12 @@ int ap_query_configuration(struct ap_config_info *info)
>  }
>  EXPORT_SYMBOL(ap_query_configuration);
>  
> +int ap_instructions_installed(void)
> +{
> +	return (ap_instructions_available() == 0);
> +}
> +EXPORT_SYMBOL(ap_instructions_installed);
> +
>  /**
>   * ap_init_configuration(): Allocate and query configuration array.
>   */
> 


-- 

Thanks,

David / dhildenb

  parent reply	other threads:[~2018-05-04  7:19 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-15 21:22 [PATCH v4 00/15] s390: vfio-ap: guest dedicated crypto adapters Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 01/15] s390: zcrypt: externalize AP instructions available function Tony Krowiak
2018-04-16  8:44   ` Pierre Morel
2018-04-16 12:11     ` Cornelia Huck
2018-04-17 13:31       ` Tony Krowiak
2018-04-17 16:56         ` Cornelia Huck
2018-04-17 18:14           ` Tony Krowiak
     [not found]           ` <db4245ec-0191-2c32-5c1c-12af50b944c6@linux.vnet.ibm.com>
2018-04-23  7:04             ` Cornelia Huck
2018-04-16 15:59   ` Pierre Morel
     [not found]     ` <OFF71B62BB.95581C62-ON00258272.00264957-C1258272.0026A1CA@notes.na.collabserv.com>
2018-04-17 12:44       ` Pierre Morel
2018-05-04  7:19   ` David Hildenbrand [this message]
2018-05-07 14:02     ` Tony Krowiak
2018-05-07 14:55       ` David Hildenbrand
2018-04-15 21:22 ` [PATCH v4 02/15] KVM: s390: reset crypto attributes for all vcpus Tony Krowiak
2018-04-17 11:34   ` Cornelia Huck
2018-04-17 13:47     ` Tony Krowiak
2018-04-17 14:09       ` Cornelia Huck
2018-04-17 14:29   ` Halil Pasic
2018-04-17 14:55     ` Tony Krowiak
2018-04-17 15:10       ` Cornelia Huck
2018-04-17 17:54         ` Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 03/15] KVM: s390: refactor crypto initialization Tony Krowiak
2018-04-16  8:56   ` Pierre Morel
     [not found]     ` <OFE3FE11B1.8E1BDDEF-ON00258272.002AEDB1-C1258272.002B06EF@notes.na.collabserv.com>
2018-04-17 10:10       ` Cornelia Huck
2018-04-17 10:10         ` Cornelia Huck
2018-04-17 14:26         ` Tony Krowiak
2018-04-17 15:21           ` Cornelia Huck
2018-04-17 18:08             ` Tony Krowiak
2018-04-18  7:49               ` Cornelia Huck
2018-04-22 14:52                 ` Tony Krowiak
2018-04-23  7:03                   ` Cornelia Huck
2018-04-24 13:01                     ` Tony Krowiak
2018-04-24 13:13                       ` Cornelia Huck
2018-04-17 14:15     ` Tony Krowiak
2018-04-17 15:52       ` Pierre Morel
2018-04-22 21:11         ` Tony Krowiak
2018-04-17 14:30   ` Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 04/15] KVM: s390: CPU model support for AP virtualization Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 05/15] KVM: s390: enable/disable AP interpretive execution Tony Krowiak
2018-04-16 10:51   ` Pierre Morel
2018-04-16 11:13     ` Pierre Morel
2018-04-16 11:52       ` Halil Pasic
2018-04-17 15:12         ` Tony Krowiak
2018-04-17 15:09       ` Tony Krowiak
2018-04-17 15:02     ` Tony Krowiak
2018-04-17 16:13       ` Pierre Morel
2018-04-17 16:22         ` Tony Krowiak
2018-04-17 16:55           ` Pierre Morel
2018-04-17 18:11             ` Tony Krowiak
2018-04-18  8:31               ` Pierre Morel
2018-04-19 14:28                 ` Tony Krowiak
2018-04-17 16:34         ` Tony Krowiak
2018-04-16 11:12   ` Halil Pasic
2018-04-17 15:11     ` Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 06/15] s390: vfio-ap: base implementation of VFIO AP device driver Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 07/15] s390: vfio-ap: register matrix device with VFIO mdev framework Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 08/15] KVM: s390: interfaces to (de)configure guest's AP matrix Tony Krowiak
2018-04-16  5:04   ` kbuild test robot
2018-04-16  5:04     ` kbuild test robot
2018-04-23 13:46   ` Pierre Morel
2018-04-25 16:21     ` Tony Krowiak
2018-05-02 14:57       ` Pierre Morel
2018-05-03 14:41         ` Tony Krowiak
2018-05-03 16:01           ` Pierre Morel
2018-05-07 14:14             ` Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 09/15] s390: vfio-ap: sysfs interfaces to configure adapters Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 10/15] s390: vfio-ap: sysfs interfaces to configure domains Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 11/15] s390: vfio-ap: sysfs interfaces to configure control domains Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 12/15] s390: vfio-ap: sysfs interface to view matrix mdev matrix Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 13/15] KVM: s390: configure the guest's AP devices Tony Krowiak
2018-04-16 13:05   ` Pierre Morel
2018-04-16 14:51     ` Halil Pasic
2018-04-17 16:12       ` Tony Krowiak
2018-04-17 16:08     ` Tony Krowiak
2018-04-17 16:18       ` Pierre Morel
2018-04-17 16:36         ` Tony Krowiak
2018-04-18 11:56   ` Pierre Morel
2018-04-22 14:54     ` Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 14/15] s390: vfio-ap: implement VFIO_DEVICE_GET_INFO ioctl Tony Krowiak
2018-04-15 21:22 ` [PATCH v4 15/15] s390: doc: detailed specifications for AP virtualization Tony Krowiak
2018-04-16 13:13   ` Pierre Morel
2018-04-16 13:53     ` Cornelia Huck
2018-04-17 16:16       ` Tony Krowiak
2018-04-17 16:14     ` Tony Krowiak
2018-04-17 16:25       ` Pierre Morel
2018-04-17 16:37         ` Tony Krowiak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7e537cfc-5d67-c188-2890-191608cb7b4f@redhat.com \
    --to=david@redhat.com \
    --cc=akrowiak@linux.vnet.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=alifm@linux.vnet.ibm.com \
    --cc=berrange@redhat.com \
    --cc=bjsdjshi@linux.vnet.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=buendgen@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=fiuczy@linux.vnet.ibm.com \
    --cc=freude@de.ibm.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jjherne@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mjrosato@linux.vnet.ibm.com \
    --cc=pasic@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=pmorel@linux.vnet.ibm.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.