All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Janosch Frank <frankja@linux.ibm.com>,
	David Hildenbrand <david@redhat.com>,
	Cornelia Huck <cohuck@redhat.com>,
	qemu-devel@nongnu.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	qemu-s390x@nongnu.org, Claudio Imbrenda <imbrenda@linux.ibm.com>
Subject: [PULL 07/20] s390x: protvirt: KVM intercept changes
Date: Thu, 30 Apr 2020 11:44:32 +0200	[thread overview]
Message-ID: <20200430094445.25943-8-cohuck@redhat.com> (raw)
In-Reply-To: <20200430094445.25943-1-cohuck@redhat.com>

From: Janosch Frank <frankja@linux.ibm.com>

Protected VMs no longer intercept with code 4 for an instruction
interception. Instead they have codes 104 and 108 for protected
instruction interception and protected instruction notification
respectively.

The 104 mirrors the 4 interception.

The 108 is a notification interception to let KVM and QEMU know that
something changed and we need to update tracking information or
perform specific tasks. It's currently taken for the following
instructions:

* spx (To inform about the changed prefix location)
* sclp (On incorrect SCCB values, so we can inject a IRQ)
* sigp (All but "stop and store status")
* diag308 (Subcodes 0/1)

Of these exits only sclp errors, state changing sigps and diag308 will
reach QEMU. QEMU will do its parts of the job, while the ultravisor
has done the instruction part of the job.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200319131921.2367-7-frankja@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 target/s390x/kvm.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
index b2b14bde2b25..1988809ec2e7 100644
--- a/target/s390x/kvm.c
+++ b/target/s390x/kvm.c
@@ -115,6 +115,8 @@
 #define ICPT_CPU_STOP                   0x28
 #define ICPT_OPEREXC                    0x2c
 #define ICPT_IO                         0x40
+#define ICPT_PV_INSTR                   0x68
+#define ICPT_PV_INSTR_NOTIFICATION      0x6c
 
 #define NR_LOCAL_IRQS 32
 /*
@@ -1698,6 +1700,8 @@ static int handle_intercept(S390CPU *cpu)
             (long)cs->kvm_run->psw_addr);
     switch (icpt_code) {
         case ICPT_INSTRUCTION:
+        case ICPT_PV_INSTR:
+        case ICPT_PV_INSTR_NOTIFICATION:
             r = handle_instruction(cpu, run);
             break;
         case ICPT_PROGRAM:
-- 
2.21.1



  parent reply	other threads:[~2020-04-30  9:48 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-30  9:44 [PULL 00/20] first set of s390x patches for 5.1 Cornelia Huck
2020-04-30  9:44 ` [PULL 01/20] virtio-net: fix rsc_ext compat handling Cornelia Huck
2020-04-30  9:44 ` [PULL 02/20] linux-headers: update against Linux 5.7-rc3 Cornelia Huck
2020-04-30  9:44 ` [PULL 03/20] s390x: Move diagnose 308 subcodes and rcs into ipl.h Cornelia Huck
2020-04-30  9:44 ` [PULL 04/20] s390x: protvirt: Support unpack facility Cornelia Huck
2020-04-30  9:44 ` [PULL 05/20] s390x: protvirt: Add migration blocker Cornelia Huck
2020-04-30  9:44 ` [PULL 06/20] s390x: protvirt: Inhibit balloon when switching to protected mode Cornelia Huck
2020-04-30  9:44 ` Cornelia Huck [this message]
2020-04-30  9:44 ` [PULL 08/20] s390x: Add SIDA memory ops Cornelia Huck
2020-04-30  9:44 ` [PULL 09/20] s390x: protvirt: Move STSI data over SIDAD Cornelia Huck
2020-04-30  9:44 ` [PULL 10/20] s390x: protvirt: SCLP interpretation Cornelia Huck
2020-04-30  9:44 ` [PULL 11/20] s390x: protvirt: Set guest IPL PSW Cornelia Huck
2020-04-30  9:44 ` [PULL 12/20] s390x: protvirt: Move diag 308 data over SIDA Cornelia Huck
2020-04-30  9:44 ` [PULL 13/20] s390x: protvirt: Disable address checks for PV guest IO emulation Cornelia Huck
2020-04-30  9:44 ` [PULL 14/20] s390x: protvirt: Move IO control structures over SIDA Cornelia Huck
2020-04-30  9:44 ` [PULL 15/20] s390x: protvirt: Handle SIGP store status correctly Cornelia Huck
2020-04-30  9:44 ` [PULL 16/20] docs: system: Add protvirt docs Cornelia Huck
2020-04-30  9:44 ` [PULL 17/20] s390x: Add unpack facility feature to GA1 Cornelia Huck
2020-04-30  9:44 ` [PULL 18/20] s390x: protvirt: Fix stray error_report_err in s390_machine_protect Cornelia Huck
2020-04-30  9:44 ` [PULL 19/20] s390x/pv: Retry ioctls on -EINTR Cornelia Huck
2020-04-30  9:44 ` [PULL 20/20] s390x/s390-virtio-ccw: Fix build on systems without KVM Cornelia Huck
2020-04-30 13:54 ` [PULL 00/20] first set of s390x patches for 5.1 Peter Maydell
2020-04-30 15:36 ` no-reply

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=20200430094445.25943-8-cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    /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.