On 06/10/2017 16:38, Wanpeng Li wrote: > + now = ktime_get(); > + remaining = ktime_sub(apic->lapic_timer.target_expiration, now); Still need to compare against zero here. I guess Radim can do it. Paolo > + ns_remaining_old = ktime_to_ns(remaining); > + ns_remaining_new = mul_u64_u32_div(ns_remaining_old, > + apic->divide_count, old_divisor); > + > + apic->lapic_timer.tscdeadline += nsec_to_cycles(apic->vcpu, ns_remaining_new) - > + nsec_to_cycles(apic->vcpu, ns_remaining_old); > + apic->lapic_timer.target_expiration = ktime_add_ns(now, ns_remaining_new);