[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 23/27] s390x/tcg: implement STOP and RESET in
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-devel] [PATCH v1 23/27] s390x/tcg: implement STOP and RESET interrupts for TCG |
Date: |
Mon, 18 Sep 2017 22:00:48 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
> static void cpu_inject_io(S390CPU *cpu, uint16_t subchannel_id,
> diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c
> index ce8fda9d01..521dcc75f3 100644
> --- a/target/s390x/sigp.c
> +++ b/target/s390x/sigp.c
> @@ -498,6 +498,7 @@ void do_stop_interrupt(CPUS390XState *env)
> s390_store_status(cpu, S390_STORE_STATUS_DEF_ADDR, true);
> }
> env->sigp_order = 0;
> + env->pending_int &= ~INTERRUPT_STOP;
The *awesome* kvm-unit-tests (yes, the single sigp_stop() we do when
shutting down) just found a missing cpu_loop_exit()
diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c
index ce8fda9d01..9aadc3ffdd 100644
--- a/target/s390x/sigp.c
+++ b/target/s390x/sigp.c
@@ -498,6 +498,11 @@ void do_stop_interrupt(CPUS390XState *env)
s390_store_status(cpu, S390_STORE_STATUS_DEF_ADDR, true);
}
env->sigp_order = 0;
+ env->pending_int &= ~INTERRUPT_STOP;
+#ifdef CONFIG_TCG
+ /* the CPU has been stopped, we must immediately go out of the loop */
+ cpu_loop_exit(CPU(s390_env_get_cpu(env)));
+#endif
}
> }
>
> void s390_init_sigp(void)
>
--
Thanks,
David
- [Qemu-devel] [PATCH v1 19/27] s390x/tcg: implement SIGP SENSE, (continued)
- [Qemu-devel] [PATCH v1 19/27] s390x/tcg: implement SIGP SENSE, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 21/27] s390x/tcg: implement SIGP EMERGENCY SIGNAL, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 16/27] s390x/kvm: factor out SIGP code into sigp.c, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 18/27] s390x/tcg: implement SIGP SENSE RUNNING STATUS, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 20/27] s390x/tcg: implement SIGP EXTERNAL CALL, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 22/27] s390x/tcg: implement SIGP CONDITIONAL EMERGENCY SIGNAL, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 24/27] s390x/tcg: flush the tlb on SIGP SET PREFIX, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 23/27] s390x/tcg: implement STOP and RESET interrupts for TCG, David Hildenbrand, 2017/09/18
- Re: [Qemu-devel] [PATCH v1 23/27] s390x/tcg: implement STOP and RESET interrupts for TCG,
David Hildenbrand <=
- [Qemu-devel] [PATCH v1 25/27] s390x/tcg: switch to new SIGP handling code, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 27/27] s390x/tcg: refactor stfl(e) to use s390_get_feat_block(), David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 26/27] s390x/tcg: unlock NMI, David Hildenbrand, 2017/09/18
- Re: [Qemu-devel] [PATCH v1 00/27] s390x: SMP for TCG (+ cleanups), Christian Borntraeger, 2017/09/18
- Re: [Qemu-devel] [PATCH v1 00/27] s390x: SMP for TCG (+ cleanups), David Hildenbrand, 2017/09/21