From: Cornelia Huck <cohuck@redhat.com>
To: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
Cc: linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, freude@de.ibm.com, schwidefsky@de.ibm.com,
heiko.carstens@de.ibm.com, borntraeger@de.ibm.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 02/15] KVM: s390: reset crypto attributes for all vcpus
Date: Tue, 17 Apr 2018 13:34:03 +0200 [thread overview]
Message-ID: <20180417133403.6fd7627a.cohuck@redhat.com> (raw)
In-Reply-To: <1523827345-11600-3-git-send-email-akrowiak@linux.vnet.ibm.com>
On Sun, 15 Apr 2018 17:22:12 -0400
Tony Krowiak <akrowiak@linux.vnet.ibm.com> wrote:
> Introduces a new function to reset the crypto attributes for all
> vcpus whether they are running or not. Each vcpu in KVM will
> be removed from SIE prior to resetting the crypto attributes in its
> SIE state description. After all vcpus have had their crypto attributes
> reset the vcpus will be restored to SIE.
>
> This function will be used in a later patch to set the ECA.28
> bit in the SIE state description to enable interpretive execution of
> AP instructions. It will also be incorporated into the
> kvm_s390_vm_set_crypto(kvm) function to fix an issue whereby the crypto
> key wrapping attributes could potentially get out of synch for running
> vcpus.
So, this description leads me to think it would make sense to queue
this patch (fixing the key wrapping) independently of this series,
wouldn't it?
>
> Signed-off-by: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
> ---
> arch/s390/kvm/kvm-s390.c | 19 +++++++++++++------
> arch/s390/kvm/kvm-s390.h | 14 ++++++++++++++
> 2 files changed, 27 insertions(+), 6 deletions(-)
>
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index 64c9862..d0c3518 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -791,11 +791,21 @@ static int kvm_s390_set_mem_control(struct kvm *kvm, struct kvm_device_attr *att
>
> static void kvm_s390_vcpu_crypto_setup(struct kvm_vcpu *vcpu);
>
> -static int kvm_s390_vm_set_crypto(struct kvm *kvm, struct kvm_device_attr *attr)
> +void kvm_s390_vcpu_crypto_reset_all(struct kvm *kvm)
_reset_all() or _set_all()? Don't really care much, tbh.
> {
> - struct kvm_vcpu *vcpu;
> int i;
> + struct kvm_vcpu *vcpu;
I'd avoid swapping the order of the declarations.
> +
> + kvm_s390_vcpu_block_all(kvm);
> +
> + kvm_for_each_vcpu(i, vcpu, kvm)
> + kvm_s390_vcpu_crypto_setup(vcpu);
>
> + kvm_s390_vcpu_unblock_all(kvm);
> +}
> +
> +static int kvm_s390_vm_set_crypto(struct kvm *kvm, struct kvm_device_attr *attr)
> +{
> if (!test_kvm_facility(kvm, 76))
> return -EINVAL;
>
> @@ -832,10 +842,7 @@ static int kvm_s390_vm_set_crypto(struct kvm *kvm, struct kvm_device_attr *attr)
> return -ENXIO;
> }
>
> - kvm_for_each_vcpu(i, vcpu, kvm) {
> - kvm_s390_vcpu_crypto_setup(vcpu);
> - exit_sie(vcpu);
> - }
> + kvm_s390_vcpu_crypto_reset_all(kvm);
> mutex_unlock(&kvm->lock);
> return 0;
> }
> diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h
> index 1b5621f..76324b7 100644
> --- a/arch/s390/kvm/kvm-s390.h
> +++ b/arch/s390/kvm/kvm-s390.h
> @@ -410,4 +410,18 @@ static inline int kvm_s390_use_sca_entries(void)
> }
> void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu,
> struct mcck_volatile_info *mcck_info);
> +
> +/**
> + * kvm_s390_vcpu_crypto_reset_all
> + *
> + * Reset the crypto attributes for each vcpu. This can be done while the vcpus
> + * are running as each vcpu will be removed from SIE before resetting the crypto
> + * attributes and restored to SIE afterward.
> + *
> + * Note: The kvm->lock mutex must be locked prior to calling this function and
> + * unlocked after it returns.
"Must be called with kvm->lock held"?
> + *
> + * @kvm: the KVM guest
> + */
> +void kvm_s390_vcpu_crypto_reset_all(struct kvm *kvm);
> #endif
Other than the nits above, looks good to me.
next prev parent reply other threads:[~2018-04-17 11:34 UTC|newest]
Thread overview: 84+ 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
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 [this message]
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 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-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=20180417133403.6fd7627a.cohuck@redhat.com \
--to=cohuck@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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox