qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v7 02/15] s390x: protvirt: Support unpack facility


From: David Hildenbrand
Subject: Re: [PATCH v7 02/15] s390x: protvirt: Support unpack facility
Date: Mon, 9 Mar 2020 15:42:38 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0

On 09.03.20 15:40, Christian Borntraeger wrote:
> 
> 
> On 09.03.20 14:37, David Hildenbrand wrote:
> 
>>>  
>>> +#if !defined(CONFIG_USER_ONLY)
>>> +static bool machine_is_pv(MachineState *ms)
>>> +{
>>> +    Object *obj;
>>> +
>>> +    /* we have to bail out for the "none" machine */
>>> +    obj = object_dynamic_cast(OBJECT(ms), TYPE_S390_CCW_MACHINE);
>>> +     if (!obj) {
>>> +        return false;
>>> +    }
>>> +    return S390_CCW_MACHINE(obj)->pv;
>>
>> Maybe you want to cache the machine, so you can avoid the
>> lookup+conversion on every new CPU.
>>
> 
> something like the following?
> 
> 
> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
> index c513f8efe0..cd12c29b9a 100644
> --- a/target/s390x/cpu.c
> +++ b/target/s390x/cpu.c
> @@ -185,13 +185,18 @@ static void s390_cpu_disas_set_info(CPUState *cpu, 
> disassemble_info *info)
>  static bool machine_is_pv(MachineState *ms)
>  {
>      Object *obj;
> +    static S390CcwMachineState *ccw;
> +

Move this up please (reverse christmas tree ;) )

> +    if (ccw)
> +           return ccw->pv;
>  
>      /* we have to bail out for the "none" machine */
>      obj = object_dynamic_cast(OBJECT(ms), TYPE_S390_CCW_MACHINE);
>       if (!obj) {
>          return false;
>      }
> -    return S390_CCW_MACHINE(obj)->pv;
> +    ccw = S390_CCW_MACHINE(obj);
> +    return ccw->pv;
>  }
>  #endif

Yeah, guess this makes sense.

-- 
Thanks,

David / dhildenb




reply via email to

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