qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Janosch Frank <frankja@linux.ibm.com>
To: qemu-devel@nongnu.org
Cc: borntraeger@de.ibm.com, qemu-s390x@nongnu.org, cohuck@redhat.com,
	david@redhat.com
Subject: [PATCH v10 06/16] s390x: protvirt: KVM intercept changes
Date: Wed, 18 Mar 2020 10:30:37 -0400	[thread overview]
Message-ID: <20200318143047.2335-7-frankja@linux.ibm.com> (raw)
In-Reply-To: <20200318143047.2335-1-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>
---
 target/s390x/kvm.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
index c695941076b7aead..cbb71aa11b9a626a 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.25.1



  parent reply	other threads:[~2020-03-18 14:32 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-18 14:30 [PATCH v10 00/16] s390x: Protected Virtualization support Janosch Frank
2020-03-18 14:30 ` [PATCH v10 01/16] s390x: Move diagnose 308 subcodes and rcs into ipl.h Janosch Frank
2020-03-18 16:42   ` Cornelia Huck
2020-03-18 20:29   ` Christian Borntraeger
2020-03-19 12:42   ` Claudio Imbrenda
2020-03-18 14:30 ` [PATCH v10 02/16] Sync pv Janosch Frank
2020-03-18 14:30 ` [PATCH v10 03/16] s390x: protvirt: Support unpack facility Janosch Frank
2020-03-19 11:08   ` Cornelia Huck
2020-03-19 11:55     ` Janosch Frank
2020-03-19 11:57       ` Christian Borntraeger
2020-03-19 11:57         ` Janosch Frank
2020-03-18 14:30 ` [PATCH v10 04/16] s390x: protvirt: Add migration blocker Janosch Frank
2020-03-18 14:30 ` [PATCH v10 05/16] s390x: protvirt: Inhibit balloon when switching to protected mode Janosch Frank
2020-03-18 17:27   ` Cornelia Huck
2020-03-18 14:30 ` Janosch Frank [this message]
2020-03-18 14:30 ` [PATCH v10 07/16] s390x: Add SIDA memory ops Janosch Frank
2020-03-18 14:30 ` [PATCH v10 08/16] s390x: protvirt: Move STSI data over SIDAD Janosch Frank
2020-03-18 17:57   ` Cornelia Huck
2020-03-18 14:30 ` [PATCH v10 09/16] s390x: protvirt: SCLP interpretation Janosch Frank
2020-03-19 12:09   ` Cornelia Huck
2020-03-19 12:46     ` Janosch Frank
2020-03-19 12:50       ` Cornelia Huck
2020-03-18 14:30 ` [PATCH v10 10/16] s390x: protvirt: Set guest IPL PSW Janosch Frank
2020-03-18 18:00   ` Cornelia Huck
2020-03-19  8:19     ` Janosch Frank
2020-03-18 14:30 ` [PATCH v10 11/16] s390x: protvirt: Move diag 308 data over SIDA Janosch Frank
2020-03-19 12:12   ` Cornelia Huck
2020-03-18 14:30 ` [PATCH v10 12/16] s390x: protvirt: Disable address checks for PV guest IO emulation Janosch Frank
2020-03-18 14:30 ` [PATCH v10 13/16] s390x: protvirt: Move IO control structures over SIDA Janosch Frank
2020-03-19 12:23   ` Cornelia Huck
2020-03-19 12:50     ` Janosch Frank
2020-03-18 14:30 ` [PATCH v10 14/16] s390x: protvirt: Handle SIGP store status correctly Janosch Frank
2020-03-18 14:30 ` [PATCH v10 15/16] docs: system: Add protvirt docs Janosch Frank
2020-03-18 14:53   ` Cornelia Huck
2020-03-19  9:04     ` Janosch Frank
2020-03-19  9:59       ` Cornelia Huck
2020-03-18 16:50   ` Christian Borntraeger
2020-03-18 14:30 ` [PATCH v10 16/16] s390x: Add unpack facility feature to GA1 Janosch Frank
2020-03-18 16:43   ` Cornelia Huck

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=20200318143047.2335-7-frankja@linux.ibm.com \
    --to=frankja@linux.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).