[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] MIPS - fix cycle counter timing calculations
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v2] MIPS - fix cycle counter timing calculations |
Date: |
Tue, 14 Dec 2021 16:12:46 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 |
On 12/13/21 14:51, Simon Burge wrote:
> The cp0_count_ns value is calculated from the CP0_COUNT_RATE_DEFAULT
> constant in target/mips/cpu.c. The cycle counter resolution is defined
> per-CPU in target/mips/cpu-defs.c.inc; use this value for calculating
> cp0_count_ns. Fixings timing problems on guest OSs for the 20Kc CPU
> which has a CCRes of 1.
>
> Signed-off-by: Simon Burge <simonb@NetBSD.org>
> ---
> target/mips/cpu.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/target/mips/cpu.c b/target/mips/cpu.c
> index 4aae23934b..0766e25693 100644
> --- a/target/mips/cpu.c
> +++ b/target/mips/cpu.c
> @@ -440,8 +440,9 @@ static void mips_cp0_period_set(MIPSCPU *cpu)
> {
> CPUMIPSState *env = &cpu->env;
>
> + /* env->CCRes isn't initialised this early, use env->cpu_model->CCRes. */
> env->cp0_count_ns = clock_ticks_to_ns(MIPS_CPU(cpu)->clock,
> - cpu->cp0_count_rate);
> + env->cpu_model->CCRes);
> assert(env->cp0_count_ns);
> }
>
Minor comment, it is better to post patch iterations as new thread,
and not as reply to older patch, because in thread view your new
patch might ended hidden / lost.
Patch queued to mips-next, thanks.