Re: [PATCH RFC 3/7] KVM: timer: synchronize tsc-deadline timestamp for guest

From: Quan Xu
Date: Wed Dec 13 2017 - 20:55:40 EST




On 2017/12/08 23:06, Konrad Rzeszutek Wilk wrote:
On Fri, Dec 08, 2017 at 04:39:46PM +0800, Quan Xu wrote:
From: Ben Luo <bn0418@xxxxxxxxx>

In general, KVM guest programs tsc-deadline timestamp to
MSR_IA32_TSC_DEADLINE MSR. This will cause a VM-exit, and
then KVM handles this timer for guest.

The tsc-deadline timestamp is mostly recorded in share page
with less VM-exit. We Introduce a periodically working kthread
to scan share page and synchronize timer setting for guest
on a dedicated CPU.
That sounds like a race. Meaning the guest may put too small window
and this 'working thread to scan' may not get to it fast enough?
yes, you are right. So ..
.
Meaning we miss the deadline to inject the timer in the guest.

Or is this part of this PV MSR semantics - that it will only work
for certain amount of values and anything less than say 1ms
should not use the PV MSR?

..
for these timers, We have to program these tsc-deadline timestamps
to MSR_IA32_TSC_DEADLINE as normal, which will cause VM-exit and KVM will
signal the working thread through IPI to program timer, instead of
registering on current CPU (patch 0004).

more detail in patch 0007.

Quan
Alibaba Cloud