[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 18/27] s390x/tcg: implement SIGP SENSE RUNNIN
From: |
Thomas Huth |
Subject: |
Re: [Qemu-devel] [PATCH v1 18/27] s390x/tcg: implement SIGP SENSE RUNNING STATUS |
Date: |
Mon, 25 Sep 2017 14:47:24 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
On 18.09.2017 18:00, David Hildenbrand wrote:
> Preparation for TCG, for KVM is this is completely handled in the
> kernel.
>
> Signed-off-by: David Hildenbrand <address@hidden>
> ---
> target/s390x/cpu.h | 2 ++
> target/s390x/sigp.c | 25 +++++++++++++++++++++++++
> 2 files changed, 27 insertions(+)
>
> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
> index 5d03802c7d..5aa755d7b5 100644
> --- a/target/s390x/cpu.h
> +++ b/target/s390x/cpu.h
> @@ -594,6 +594,7 @@ struct sysib_322 {
> #define SIGP_SET_PREFIX 0x0d
> #define SIGP_STORE_STATUS_ADDR 0x0e
> #define SIGP_SET_ARCH 0x12
> +#define SIGP_SENSE_RUNNING 0x15
> #define SIGP_STORE_ADTL_STATUS 0x17
>
> /* SIGP condition codes */
> @@ -604,6 +605,7 @@ struct sysib_322 {
>
> /* SIGP status bits */
> #define SIGP_STAT_EQUIPMENT_CHECK 0x80000000UL
> +#define SIGP_STAT_NOT_RUNNING 0x00000400UL
> #define SIGP_STAT_INCORRECT_STATE 0x00000200UL
> #define SIGP_STAT_INVALID_PARAMETER 0x00000100UL
> #define SIGP_STAT_EXT_CALL_PENDING 0x00000080UL
> diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c
> index 9587c3d319..c57312b743 100644
> --- a/target/s390x/sigp.c
> +++ b/target/s390x/sigp.c
> @@ -234,6 +234,28 @@ static void sigp_set_prefix(CPUState *cs,
> run_on_cpu_data arg)
> si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
> }
>
> +static void sigp_sense_running(S390CPU *dst_cpu, SigpInfo *si)
> +{
> + if (!tcg_enabled()) {
> + /* handled in KVM */
> + set_sigp_status(si, SIGP_STAT_INVALID_ORDER);
> + return;
> + }
If we're sure that this is always handled in the kernel, I think you
could simply do a "g_assert(tcg_enabled())" here instead?
Thomas
- Re: [Qemu-devel] [PATCH v1 15/27] s390x/kvm: drop two debug prints, (continued)
- [Qemu-devel] [PATCH v1 13/27] target/s390x: proper cpu->be convertion in s390_store_status(), David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 14/27] s390x/kvm: factor out storing of adtl CPU status, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 17/27] s390x/kvm: factor out actual handling of STOP interrupts, David Hildenbrand, 2017/09/18
- [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
- Re: [Qemu-devel] [PATCH v1 18/27] s390x/tcg: implement SIGP SENSE RUNNING STATUS,
Thomas Huth <=
- [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
- [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