Understanding clock drift in virtual machines w/ CFS, NOHZ

From: Mika Bostrom
Date: Wed Feb 06 2008 - 18:49:27 EST


Good day.

I have come across the occasional issue of clock drift when running
(earlier) kernels inside a virtual machine. The reason for drift is
simple enough - host may be under heavy load, guest may not get enough
resources to run all the ticks (HZ) it is supposed to. At least to put
it simply.

Now, I have been wondering how the introduction of CFS and CONFIG_NOHZ
(dynticks) change this, or if they do at all. If I have understood
correctly, only the host's scheduler is really involved so it enters the
picture when host is running a recent kernel. In a pure hypervisor-only
virtualization, that point should be moot.

And then we have dynticks. Try as I might, I haven't been able to wrap
my head around the combination. What happens to the kernel and
timekeeping when guest has NOHZ enabled?

My google-fu is not good enough to find the relevant documentation if
such even exists on this subject. To top it off, I'm not certain whether
my question is trivial, non-issue or just plain weird.

Any pointers on where I should look for more information will be
appreciated.

--
Mika Boström +358-40-525-7347 -=- The flogging will continue
Bostik@xxxxxx www.iki.fi/bostik -=- until morale improves
GPG: 0x039F188E; EC67 5B3A E6E3 6A84 9CB2 94D3 BFCD BD57 039F 188E
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/