Date: Tue, 16 Aug 2011 02:05:53 -0500 (CDT) From: Mike Silbersack <silby@silby.com> To: freebsd-current@freebsd.org Cc: jkim@freebsd.org Subject: Re: [patch] Disable TSC on SMP VMs Message-ID: <alpine.OSX.2.00.1108160204410.26832@telemachus.local> In-Reply-To: <alpine.OSX.2.00.1108152357520.26832@telemachus.local> References: <alpine.OSX.2.00.1108152357520.26832@telemachus.local>
next in thread | previous in thread | raw e-mail | index | archive | help
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 >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.OSX.2.00.1108160204410.26832>