On 8/14/20 10:39 PM, Richard Henderson wrote: > On 8/12/20 11:32 AM, Claudio Fontana wrote: >> +static int64_t tcg_get_virtual_clock(void) >> +{ >> + if (icount_enabled()) { >> + return icount_get(); >> + } >> + return cpu_get_clock(); >> +} >> + >> +static int64_t tcg_get_elapsed_ticks(void) >> +{ >> + if (icount_enabled()) { >> + return icount_get(); >> + } >> + return cpu_get_ticks(); >> +} >> + >> +CpusAccel tcg_cpus = { >> + .create_vcpu_thread = tcg_start_vcpu_thread, >> + .kick_vcpu_thread = tcg_kick_vcpu_thread, >> + .get_virtual_clock = tcg_get_virtual_clock, >> + .get_elapsed_ticks = tcg_get_elapsed_ticks, >> +}; > > I think this variable should be const. Which of course means that the > previous > patch needs to add const annotations.
Will add. > > I think you should actually have multiple dispatch variables: with icount and > without, with mttcg and without. That way these methods don't have to check > icount_enabled() or qemu_tcg_mttcg_enabled() at runtime, only at startup. I gave it a try, it would work, however it is basically a refactoring of the existing qemu_tcg_init_vcpu , I'd do it in a separate series if possible (with some help from Alex?) Claudio > > > r~ >