qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 3/3] PPC: SPAPR: Use KVM function for time info


From: David Gibson
Subject: Re: [Qemu-devel] [PATCH 3/3] PPC: SPAPR: Use KVM function for time info
Date: Wed, 10 Aug 2011 13:35:53 +1000
User-agent: Mutt/1.5.21 (2010-09-15)

On Tue, Aug 09, 2011 at 06:39:30PM +0200, Alexander Graf wrote:
> One of the things we can't fake on PPC is the timer speed. So
> we need to extract the frequency information from the host and
> put it back into the guest device tree.
> 
> Luckily, we already have functions for that from the non-pseries
> targets, so all we need to do is to connect the dots and the guest
> suddenly gets to know its real timer speeds.
> 
> Signed-off-by: Alexander Graf <address@hidden>
> ---
>  hw/spapr.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/spapr.c b/hw/spapr.c
> index d56697a..a73f38a 100644
> --- a/hw/spapr.c
> +++ b/hw/spapr.c
> @@ -140,6 +140,8 @@ static void *spapr_create_fdt_skel(const char *cpu_model,
>          char *nodename;
>          uint32_t segs[] = {cpu_to_be32(28), cpu_to_be32(40),
>                             0xffffffff, 0xffffffff};
> +        uint32_t tbfreq = kvm_enabled() ? kvmppc_get_tbfreq() : 
> TIMEBASE_FREQ;
> +        uint32_t cpufreq = kvm_enabled() ? kvmppc_get_clockfreq() : 
> 1000000000;

Um.. I see the kvmppc_get_tbfreq() function but not the
kvmppc_get_clockfreq() function in my tree (pulled from upstream this
morning).  Is that something new in your ppc patch queue?

>          if (asprintf(&nodename, "address@hidden", modelname, index) < 0) {
>              fprintf(stderr, "Allocation failure\n");
> @@ -158,10 +160,8 @@ static void *spapr_create_fdt_skel(const char *cpu_model,
>                                  env->dcache_line_size)));
>          _FDT((fdt_property_cell(fdt, "icache-block-size",
>                                  env->icache_line_size)));
> -        _FDT((fdt_property_cell(fdt, "timebase-frequency", TIMEBASE_FREQ)));
> -        /* Hardcode CPU frequency for now.  It's kind of arbitrary on
> -         * full emu, for kvm we should copy it from the host */
> -        _FDT((fdt_property_cell(fdt, "clock-frequency", 1000000000)));
> +        _FDT((fdt_property_cell(fdt, "timebase-frequency", tbfreq)));
> +        _FDT((fdt_property_cell(fdt, "clock-frequency", cpufreq)));
>          _FDT((fdt_property_cell(fdt, "ibm,slb-size", env->slb_nr)));
>          _FDT((fdt_property(fdt, "ibm,pft-size",
>                             pft_size_prop, sizeof(pft_size_prop))));

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson



reply via email to

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