qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]