On 30 March 2015 at 14:01, Stefan Hajnoczi <stefa...@redhat.com> wrote: > On Sat, Mar 28, 2015 at 06:22:11PM +0200, Emil Condrea wrote: >> diff --git a/target-arm/helper.c b/target-arm/helper.c >> index 10886c5..504530a 100644 >> --- a/target-arm/helper.c >> +++ b/target-arm/helper.c >> @@ -649,7 +649,7 @@ void pmccntr_sync(CPUARMState *env) >> uint64_t temp_ticks; >> >> temp_ticks = muldiv64(qemu_clock_get_us(QEMU_CLOCK_VIRTUAL), >> - get_ticks_per_sec(), 1000000); >> + NSEC_PER_SEC, 1000000); >> >> if (env->cp15.c9_pmcr & PMCRD) { >> /* Increment once every 64 processor clock cycles */ >> @@ -688,7 +688,7 @@ static uint64_t pmccntr_read(CPUARMState *env, const >> ARMCPRegInfo *ri) >> } >> >> total_ticks = muldiv64(qemu_clock_get_us(QEMU_CLOCK_VIRTUAL), >> - get_ticks_per_sec(), 1000000); >> + NSEC_PER_SEC, 1000000); >> >> if (env->cp15.c9_pmcr & PMCRD) { >> /* Increment once every 64 processor clock cycles */ >> @@ -709,7 +709,7 @@ static void pmccntr_write(CPUARMState *env, const >> ARMCPRegInfo *ri, >> } >> >> total_ticks = muldiv64(qemu_clock_get_us(QEMU_CLOCK_VIRTUAL), >> - get_ticks_per_sec(), 1000000); >> + NSEC_PER_SEC, 1000000); > > Peter: I wonder why the muldiv64() expression is necessary. Is it > intentionally returning the microsecond clock converted to nanoseconds? > > Perhaps the expression should be replaced with just > qemu_get_clock_ns(QEMU_CLOCK_VIRTUAL)? > > Or if microsecond precision is required, use qemu_get_clock_us() * 1000.
Ask Peter C -- IIRC this is his code. -- PMM