LKML Archive on lore.kernel.org
 help / Atom feed
From: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
To: 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,
	akrowiak@linux.vnet.ibm.com, frankja@linux.ibm.com,
	David Hildenbrand <david@redhat.com>
Subject: [PATCH v8 06/22] KVM: s390: introduce and use KVM_REQ_VSIE_RESTART
Date: Wed,  8 Aug 2018 10:44:16 -0400
Message-ID: <1533739472-7172-7-git-send-email-akrowiak@linux.vnet.ibm.com> (raw)
In-Reply-To: <1533739472-7172-1-git-send-email-akrowiak@linux.vnet.ibm.com>

From: David Hildenbrand <david@redhat.com>

When we change the crycb (or execution controls), we also have to make sure
that the vSIE shadow datastructures properly consider the changed
values before rerunning the vSIE. We can achieve that by simply using a
VCPU request now.

This has to be a synchronous request (== handled before entering the
(v)SIE again).

The request will make sure that the vSIE handler is left, and that the
request will be processed (NOP), therefore forcing a reload of all
vSIE data (including rebuilding the crycb) when re-entering the vSIE
interception handler the next time.

Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Pierre Morel<pmorel@linux.ibm.com>
---
 arch/s390/include/asm/kvm_host.h |    1 +
 arch/s390/kvm/kvm-s390.c         |    7 ++++++-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
index a2188e3..af39561 100644
--- a/arch/s390/include/asm/kvm_host.h
+++ b/arch/s390/include/asm/kvm_host.h
@@ -44,6 +44,7 @@
 #define KVM_REQ_ICPT_OPEREXC	KVM_ARCH_REQ(2)
 #define KVM_REQ_START_MIGRATION KVM_ARCH_REQ(3)
 #define KVM_REQ_STOP_MIGRATION  KVM_ARCH_REQ(4)
+#define KVM_REQ_VSIE_RESTART	KVM_ARCH_REQ(5)
 
 #define SIGP_CTRL_C		0x80
 #define SIGP_CTRL_SCN_MASK	0x3f
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 6df2d12..19f4f44 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -798,8 +798,11 @@ void kvm_s390_vcpu_crypto_reset_all(struct kvm *kvm)
 
 	kvm_s390_vcpu_block_all(kvm);
 
-	kvm_for_each_vcpu(i, vcpu, kvm)
+	kvm_for_each_vcpu(i, vcpu, kvm) {
 		kvm_s390_vcpu_crypto_setup(vcpu);
+		/* recreate the shadow crycb by leaving the VSIE handler */
+		kvm_s390_sync_request(KVM_REQ_VSIE_RESTART, vcpu);
+	}
 
 	kvm_s390_vcpu_unblock_all(kvm);
 }
@@ -3090,6 +3093,8 @@ static int kvm_s390_handle_requests(struct kvm_vcpu *vcpu)
 
 	/* nothing to do, just clear the request */
 	kvm_clear_request(KVM_REQ_UNHALT, vcpu);
+	/* we left the vsie handler, nothing to do, just clear the request */
+	kvm_clear_request(KVM_REQ_VSIE_RESTART, vcpu);
 
 	return 0;
 }
-- 
1.7.1


  parent reply index

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-08 14:44 [PATCH v8 00/22] vfio-ap: guest dedicated crypto adapters Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 01/22] s390/zcrypt: Add ZAPQ inline function Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 02/22] s390/zcrypt: Review inline assembler constraints Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 03/22] s390/zcrypt: Show load of cards and queues in sysfs Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 04/22] s390/zcrypt: Integrate ap_asm.h into include/asm/ap.h Tony Krowiak
2018-08-09  9:06   ` Cornelia Huck
2018-08-09  9:17     ` Harald Freudenberger
2018-08-09 13:45       ` Harald Freudenberger
2018-08-09 16:06       ` Tony Krowiak
2018-08-10  8:49         ` Cornelia Huck
2018-08-10  9:37           ` Harald Freudenberger
2018-08-10 15:53             ` Tony Krowiak
2018-08-10 15:50           ` Tony Krowiak
2018-08-09 15:18     ` Tony Krowiak
2018-08-09 15:43       ` Heiko Carstens
2018-08-09 16:55         ` Tony Krowiak
2018-08-13  9:24     ` Harald Freudenberger
2018-08-13  9:34       ` Cornelia Huck
2018-08-08 14:44 ` [PATCH v8 05/22] KVM: s390: vsie: simulate VCPU SIE entry/exit Tony Krowiak
2018-08-08 14:44 ` Tony Krowiak [this message]
2018-08-08 14:44 ` [PATCH v8 07/22] KVM: s390: refactor crypto initialization Tony Krowiak
2018-08-09  5:58   ` Janosch Frank
2018-08-10 16:13     ` Tony Krowiak
2018-08-09  8:25   ` David Hildenbrand
2018-08-09 19:54     ` Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 08/22] s390: vfio-ap: base implementation of VFIO AP device driver Tony Krowiak
2018-08-09 10:12   ` Cornelia Huck
2018-08-08 14:44 ` [PATCH v8 09/22] s390: vfio-ap: register matrix device with VFIO mdev framework Tony Krowiak
2018-08-09 11:06   ` Cornelia Huck
2018-08-09 16:27     ` Pierre Morel
2018-08-10  8:59       ` Cornelia Huck
2018-08-08 14:44 ` [PATCH v8 10/22] s390: vfio-ap: sysfs interfaces to configure adapters Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 11/22] s390: vfio-ap: sysfs interfaces to configure domains Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 12/22] s390: vfio-ap: sysfs interfaces to configure control domains Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 13/22] s390: vfio-ap: sysfs interface to view matrix mdev matrix Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 14/22] KVM: s390: interfaces to clear CRYCB masks Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 15/22] s390: vfio-ap: implement mediated device open callback Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 16/22] s390: vfio-ap: implement VFIO_DEVICE_GET_INFO ioctl Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 17/22] s390: vfio-ap: zeroize the AP queues Tony Krowiak
2018-08-10  9:14   ` Cornelia Huck
2018-08-10 10:49     ` Pierre Morel
2018-08-10 11:16       ` Cornelia Huck
2018-08-10 16:24         ` Tony Krowiak
2018-08-13  6:57           ` Cornelia Huck
2018-08-08 14:44 ` [PATCH v8 18/22] s390: vfio-ap: implement VFIO_DEVICE_RESET ioctl Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 19/22] KVM: s390: Clear Crypto Control Block when using vSIE Tony Krowiak
2018-08-09  8:10   ` David Hildenbrand
2018-08-09  8:50     ` Pierre Morel
2018-08-09  8:57     ` Pierre Morel
2018-08-08 14:44 ` [PATCH v8 20/22] KVM: s390: Handling of Cypto control block in VSIE Tony Krowiak
2018-08-09  6:20   ` Janosch Frank
2018-08-09  7:33     ` Pierre Morel
2018-08-08 14:44 ` [PATCH v8 21/22] KVM: s390: CPU model support for AP virtualization Tony Krowiak
2018-08-09  8:17   ` David Hildenbrand
2018-08-09  8:34     ` Harald Freudenberger
2018-08-09 20:27     ` Tony Krowiak
2018-08-08 14:44 ` [PATCH v8 22/22] s390: doc: detailed specifications " Tony Krowiak
2018-08-08 15:06 ` [PATCH v8 00/22] vfio-ap: guest dedicated crypto adapters Janosch Frank
2018-08-08 16:25 ` Cornelia Huck
2018-08-08 22:52   ` Tony Krowiak

Reply instructions:

You may reply publically 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=1533739472-7172-7-git-send-email-akrowiak@linux.vnet.ibm.com \
    --to=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=david@redhat.com \
    --cc=fiuczy@linux.vnet.ibm.com \
    --cc=frankja@linux.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

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org linux-kernel@archiver.kernel.org
	public-inbox-index lkml


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox