[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v9 05/15] s390x: protvirt: KVM intercept changes
From: |
Claudio Imbrenda |
Subject: |
Re: [PATCH v9 05/15] s390x: protvirt: KVM intercept changes |
Date: |
Fri, 13 Mar 2020 13:57:26 +0100 |
On Wed, 11 Mar 2020 09:21:41 -0400
Janosch Frank <address@hidden> wrote:
> 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>
> ---
> target/s390x/kvm.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
> index 1d6fd6a27b48e35f..eec0b92479465b9c 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
> /*
> @@ -1693,6 +1695,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:
very straightforward
Reviewed-by: Claudio Imbrenda <address@hidden>