[patch] Disable TSC on SMP VMs
Mike Silbersack
silby at silby.com
Tue Aug 16 07:05:56 UTC 2011
The patch I referenced (and forgot to attach) is located here:
http://www.silby.com/tsc.c-no_vm_smp_tsc.patch
Thanks to those who pointed out my error to me. :)
Mike "Silby" Silbersack
On Tue, 16 Aug 2011, Mike Silbersack wrote:
>
> Hi all,
>
> Thanks to a lightning strike, I recently upgraded my ESXi 4.1 system from an
> old Athlon X2 to a shiny new Core i5-2500K. I order to see how fast it was,
> I decided to run some buildworlds. I tried my FreeBSD 9 based VM first, and
> was unhappy with what I saw - many mpt timeouts were reported, and the
> filesystem ended up requiring a lot of fscking. My FreeBSD 8 based VM, on
> the other hand, was quite happy.
>
> After some trial and error, I determined that using the TSC as a timecounter
> with the VM in SMP mode was the root cause. If I switch the VM to one vCPU
> and run with the TSC, the buildworld runs fine. If I leave it with two vCPUs
> and change the timecounter to ACPI, then it runs fine too. Based on these
> results, I created the attached patch; it turns the priority of the TSC down
> to -100 if it determines that it is running inside a virtualized SMP
> environment. (I did not do testing on KVM or qemu, but I am assuming that
> they probably do not have TSC emulation perfect either.)
>
> I'd like to get this into 9.0 so that it works reliably for people who run it
> in a virtual environment on modern hardware. If someone could code review
> the patch, I would greatly appreciate it.
>
> Thanks,
>
> Mike "Silby" Silbersack
>
More information about the freebsd-current
mailing list