Re: [Qemu-devel] [RFC QEMU 1/2] arm/virt: Initialize generic timer scale factor dynamically
On 11/8/2018 6:21 AM, Richard Henderson wrote: On 11/7/18 7:48 PM, Bijan Mottahedeh wrote: +static void set_system_clock_scale(void) +{ +unsigned long cntfrq_el0; + +asm volatile("mrs %0, cntfrq_el0" : "=r"(cntfrq_el0)); + +if (cntfrq_el0 == 0) { +cntfrq_el0 = GTIMER_SCALE_DEF; +} + +system_clock_scale = NANOSECONDS_PER_SECOND / (int)cntfrq_el0; +} This only works for kvm. For TCG you need to use the default always. In particular, it won't even compile for an x86 host. r~ Is it ok to ifdef the asm statement with CONFIG_KVM, or what would be the correct way to account for TCG vs. KVM? Thanks. --bijan ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
Re: [Qemu-devel] [RFC QEMU 1/2] arm/virt: Initialize generic timer scale factor dynamically
On 11/7/18 7:48 PM, Bijan Mottahedeh wrote: > > +static void set_system_clock_scale(void) > +{ > +unsigned long cntfrq_el0; > + > +asm volatile("mrs %0, cntfrq_el0" : "=r"(cntfrq_el0)); > + > +if (cntfrq_el0 == 0) { > +cntfrq_el0 = GTIMER_SCALE_DEF; > +} > + > +system_clock_scale = NANOSECONDS_PER_SECOND / (int)cntfrq_el0; > +} This only works for kvm. For TCG you need to use the default always. In particular, it won't even compile for an x86 host. r~ ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm