[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/20] s390x: protvirt: KVM intercept changes
From: |
Cornelia Huck |
Subject: |
[PULL 07/20] s390x: protvirt: KVM intercept changes |
Date: |
Thu, 30 Apr 2020 11:44:32 +0200 |
From: Janosch Frank <address@hidden>
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 <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Reviewed-by: Christian Borntraeger <address@hidden>
Reviewed-by: Claudio Imbrenda <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
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
- [PULL 00/20] first set of s390x patches for 5.1, Cornelia Huck, 2020/04/30
- [PULL 01/20] virtio-net: fix rsc_ext compat handling, Cornelia Huck, 2020/04/30
- [PULL 02/20] linux-headers: update against Linux 5.7-rc3, Cornelia Huck, 2020/04/30
- [PULL 03/20] s390x: Move diagnose 308 subcodes and rcs into ipl.h, Cornelia Huck, 2020/04/30
- [PULL 05/20] s390x: protvirt: Add migration blocker, Cornelia Huck, 2020/04/30
- [PULL 06/20] s390x: protvirt: Inhibit balloon when switching to protected mode, Cornelia Huck, 2020/04/30
- [PULL 04/20] s390x: protvirt: Support unpack facility, Cornelia Huck, 2020/04/30
- [PULL 07/20] s390x: protvirt: KVM intercept changes,
Cornelia Huck <=
- [PULL 08/20] s390x: Add SIDA memory ops, Cornelia Huck, 2020/04/30
- [PULL 09/20] s390x: protvirt: Move STSI data over SIDAD, Cornelia Huck, 2020/04/30
- [PULL 10/20] s390x: protvirt: SCLP interpretation, Cornelia Huck, 2020/04/30
- [PULL 11/20] s390x: protvirt: Set guest IPL PSW, Cornelia Huck, 2020/04/30
- [PULL 12/20] s390x: protvirt: Move diag 308 data over SIDA, Cornelia Huck, 2020/04/30
- [PULL 13/20] s390x: protvirt: Disable address checks for PV guest IO emulation, Cornelia Huck, 2020/04/30
- [PULL 14/20] s390x: protvirt: Move IO control structures over SIDA, Cornelia Huck, 2020/04/30
- [PULL 15/20] s390x: protvirt: Handle SIGP store status correctly, Cornelia Huck, 2020/04/30
- [PULL 16/20] docs: system: Add protvirt docs, Cornelia Huck, 2020/04/30
- [PULL 17/20] s390x: Add unpack facility feature to GA1, Cornelia Huck, 2020/04/30