On Fri, 31 May 2019 at 17:01, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 30/05/19 21:36, Sean Christopherson wrote: > >> +u32 __read_mostly vmentry_lapic_timer_advance_ns = 0; > >> +module_param(vmentry_lapic_timer_advance_ns, uint, S_IRUGO | S_IWUSR); > > Hmm, an interesting idea would be to have some way to "lock" this param, > > e.g. setting bit 0 locks the param. That would allow KVM to calculate the > > cycles value to avoid the function call and the MUL+DIV. If I'm not > > mistaken, vcpu->arch.virtual_tsc_khz is set only in kvm_set_tsc_khz(). > > I would just make it read-only. But I'm afraid we're entering somewhat > dangerous territory. There is a risk that the guest ends up entering > the interrupt handler before the TSC deadline has actually expired, and > there would be no way to know what would happen; even guest hangs are > possible. Agreed, do it in v3. Regards, Wanpeng Li