On 23/04/2018 23:05, Anthoine Bourgeois wrote: >>> >>> >>> - now = ktime_get(); >>> - remaining = ktime_sub(apic->lapic_timer.target_expiration, now); >>> + remaining = hrtimer_get_remaining(&apic->lapic_timer.timer); >> >> I'm confused, how can this work when the preemption timer is in use >> (vcpu->arch.apic->lapic_timer.hv_timer_in_use is true)? >> > > I don't really know, this hunk is only a revert that works for me. If you don't revert the whole patch, you should try and understand how the hunks you revert interact with those that you leave in place! > I'm still seeking what is the root cause. My guest is the > target_expiration variable is mis compute sometimes. Yes, that is likely. Paolo > What I see is the spikes are linear over time at the rate of 1ms more > every 1 minutes 30 seconds.