Prev: Add TSC offset tracking
Next: TSC reset compensation
From: Zachary Amsden on 16 Jun 2010 18:40 On 06/16/2010 03:58 AM, Glauber Costa wrote: > On Wed, Jun 16, 2010 at 04:11:26PM +0800, Jason Wang wrote: > >> Zachary Amsden wrote: >> >>> Kernel time, which advances in discrete steps may progress much slower >>> than TSC. As a result, when kvmclock is adjusted to a new base, the >>> apparent time to the guest, which runs at a much higher, nsec scaled >>> rate based on the current TSC, may have already been observed to have >>> a larger value (kernel_ns + scaled tsc) than the value to which we are >>> setting it (kernel_ns + 0). >>> >>> >> This is one issue of kvmclock which tries to supply a clocksource whose >> precision may even higher than host. >> > What if we export to the guest the current clock resolution, and when doing guest > reads, simply chop whatever value we got to the lowest acceptable value? > I considered it, but it still doesn't solve the problem, at least, not without adding TSC trap and emulate. If you can see a higher resolution clock advance faster than the resolution of the kernel, you still have the problem, and any visible TSC will do that. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Rik van Riel on 14 Jul 2010 22:40
On 07/12/2010 10:25 PM, Zachary Amsden wrote: > Kernel time, which advances in discrete steps may progress much slower > than TSC. As a result, when kvmclock is adjusted to a new base, the > apparent time to the guest, which runs at a much higher, nsec scaled > rate based on the current TSC, may have already been observed to have > a larger value (kernel_ns + scaled tsc) than the value to which we are > setting it (kernel_ns + 0). > > We must instead compute the clock as potentially observed by the guest > for kernel_ns to make sure it does not go backwards. > > Signed-off-by: Zachary Amsden<zamsden(a)redhat.com> Acked-by: Rik van Riel <riel(a)redhat.com> -- All rights reversed -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |