qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] [RFC 04/17] pseries: Make cpu_update during CAS unconditi


From: Alexey Kardashevskiy
Subject: Re: [Qemu-ppc] [RFC 04/17] pseries: Make cpu_update during CAS unconditional
Date: Thu, 3 Nov 2016 19:24:29 +1100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

On 30/10/16 22:11, David Gibson wrote:
> spapr_h_cas_compose_response() includes a cpu_update parameter which
> controls whether it includes updated information on the CPUs in the device
> tree fragment returned from the ibm,client-architecture-support (CAS) call.
> 
> Providing the updated information is essential when CAS has negotiated
> compatibility options which require different cpu information to be
> presented to the guest.  However, it should be safe to provide in other
> cases (it will just override the existing data in the device tree with
> identical data).  This simplifies the code by removing the parameter and
> always providing the cpu update information.
> 
> Signed-off-by: David Gibson <address@hidden>


Reviewed-by: Alexey Kardashevskiy <address@hidden>



> ---
>  hw/ppc/spapr.c         | 5 +----
>  hw/ppc/spapr_hcall.c   | 8 ++------
>  include/hw/ppc/spapr.h | 1 -
>  3 files changed, 3 insertions(+), 11 deletions(-)
> 
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index ad68a9d..3551439 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -686,7 +686,6 @@ out:
>  
>  int spapr_h_cas_compose_response(sPAPRMachineState *spapr,
>                                   target_ulong addr, target_ulong size,
> -                                 bool cpu_update,
>                                   sPAPROptionVector *ov5_updates)
>  {
>      void *fdt, *fdt_skel;
> @@ -705,9 +704,7 @@ int spapr_h_cas_compose_response(sPAPRMachineState *spapr,
>      g_free(fdt_skel);
>  
>      /* Fixup cpu nodes */
> -    if (cpu_update) {
> -        _FDT((spapr_fixup_cpu_dt(fdt, spapr)));
> -    }
> +    _FDT((spapr_fixup_cpu_dt(fdt, spapr)));
>  
>      if (spapr_dt_cas_updates(spapr, fdt, ov5_updates)) {
>          return -1;
> diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
> index 7c46d46..b5544cb 100644
> --- a/hw/ppc/spapr_hcall.c
> +++ b/hw/ppc/spapr_hcall.c
> @@ -945,7 +945,7 @@ static target_ulong 
> h_client_architecture_support(PowerPCCPU *cpu_,
>      target_ulong ov_table;
>      PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu_);
>      CPUState *cs;
> -    bool cpu_match = false, cpu_update = true;
> +    bool cpu_match = false;
>      unsigned old_cpu_version = cpu_->cpu_version;
>      unsigned compat_lvl = 0, cpu_version = 0;
>      unsigned max_lvl = get_compat_level(cpu_->max_compat);
> @@ -999,10 +999,6 @@ static target_ulong 
> h_client_architecture_support(PowerPCCPU *cpu_,
>          }
>      }
>  
> -    if (!cpu_version) {
> -        cpu_update = false;
> -    }
> -
>      /* For the future use: here @ov_table points to the first option vector 
> */
>      ov_table = list;
>  
> @@ -1028,7 +1024,7 @@ static target_ulong 
> h_client_architecture_support(PowerPCCPU *cpu_,
>  
>      if (!spapr->cas_reboot) {
>          spapr->cas_reboot =
> -            (spapr_h_cas_compose_response(spapr, args[1], args[2], 
> cpu_update,
> +            (spapr_h_cas_compose_response(spapr, args[1], args[2],
>                                            ov5_updates) != 0);
>      }
>      spapr_ovec_cleanup(ov5_updates);
> diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
> index f8d444d..04d2821 100644
> --- a/include/hw/ppc/spapr.h
> +++ b/include/hw/ppc/spapr.h
> @@ -589,7 +589,6 @@ void spapr_events_init(sPAPRMachineState *sm);
>  void spapr_dt_events(sPAPRMachineState *sm, void *fdt);
>  int spapr_h_cas_compose_response(sPAPRMachineState *sm,
>                                   target_ulong addr, target_ulong size,
> -                                 bool cpu_update,
>                                   sPAPROptionVector *ov5_updates);
>  sPAPRTCETable *spapr_tce_new_table(DeviceState *owner, uint32_t liobn);
>  void spapr_tce_table_enable(sPAPRTCETable *tcet,
> 


-- 
Alexey



reply via email to

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