This isn't specifically a ESX 3.x (but still applies under ESX) question but I couldn't find a generic forum for this question. I have read and am well aware of the Timekeeping in VMware Virtual Machines document and have correct time sync with all of my non-smp Linux guests.
My question is around weird activities from the vmware-guestd service under a Linux guest.
I have setup a watch process checking the output of hwclock and date every 2 seconds and am doing a compare with the clock on the host. When running the guest (SLES 9SP3 x86) with clock=pit in the boot stanza with a single processor virtual machine and a standard (non-smp) kernel. The time is correctly in sync with the host, when running a smp kernel with either clock=pit, clock=tsc or clock=pmtmr the time gets out of sync, thats not a major as if the clock is slow vmware-guestd should bring it back in line (so I thought).
I have confirmed that the vmware-guestd process is running (and has the respective modules loaded for smp support (i.e. have re-run vmware-config-tools.pl once installing the smp kernel)) and have executed an strace of vmware-guestd and observe almost every 60 seconds it executing a gettimeofday call. I \_don't_ see how ever the respective settimeofday call when the time is out of sync with the host (as I can confirm it is).
As a bit of a sidenote, if I call:
vmware-guestd --cmd 'vmx.set_option synctime 1 0'
to turn off the time sync between the host and gues I notice it calls gettimeofday