On 12/12/21 9:05 PM, Anup Patel wrote:
> + ret = kvm_get_one_reg(cs, RISCV_TIMER_REG(env, state),
®);
> + if (ret) {
> + abort();
> + }
> + env->kvm_timer_state = reg;
Please read the timer frequency here.
Yep.
> +
> + env->kvm_timer_dirty = true;
> +}
> +
> +static void kvm_riscv_put_regs_timer(CPUState *cs)
> +{
> + int ret;
> + uint64_t reg;
> + CPURISCVState *env = &RISCV_CPU(cs)->env;
> +
> + if (!env->kvm_timer_dirty) {
> + return;
> + }
Over here, we should get the timer frequency and abort() with an
error message if it does not match env->kvm_timer_frequency
For now, migration will not work between Hosts with different
timer frequency.
You shouldn't have to do this every "put", only on migration, at which point
you can
actually signal a migration error rather than aborting directly.
r~