VMWare ESXi + pfSense 1.2, 1.2.1 and 1.3 missing kernel patch/support?
Maybe there is someone that can help me out with this, don´t know if I missed something about the support as GuestOS under VMWare.
I´ve downloaded the VMWare ESXi Update 2 server to try out pfSense as GuestOS on it. I have a Dell R300 with a quad core processor for testing. When I assign more then 1 vCPU it doesn´t show up in the GuestOS, pfSense only see 1 CPU. I´ve tried with Windows 2003 server, Linux (Debian and Ubuntu) and even an FreeBSD 7.0 ISO (all with SMP support), and they all show´s the right number of CPUs.
When I tried this setup I started with the 1.2_RELENG version, and after that I made an upgrade to 1.2.1 and 1.3 aswell to see if it show´s correct based on the 7.0 version.
Except the CPU core problem with pfSense as GuestOS 1.2_RELENG is working fine, but with an upgrade to 1.2.1 or 1.3 the Captive Portal is not working. I can manage the pfSense with Web GUI and SSH, but when I enable Captive Portal, I can´t get to the portal page.
These are all not VMware related.
When you install pfSense to HD, you have to choose the SMP kernel to enable SMP in pfSense(note that vSMP in Vmware is generally not a smart thing to do performancewise, so don't use it unless you're really know what you're doing).
Thanx for your reply.
I think this might be a module that needs to be updated in the kernel or a kernel option that needs to be enabled/disabled, because as I wrote before that when I tried a native freebsd 7.0 install, all cpu´s that I assign in vmware to this guestOS shows the correct number of cpu´s within the guestOS, but not with pfSense smp supported kernel.
I know that I need to select what type of kernel to go with under the installation process, but there is no difference except syslog shows if it runs on a smp supported kernel or not.
Every test installation I did started with a fresh install of pfSense 1.2, and upgraded to 1.2.1 or 1.3 version to see if there is any difference with the freebsd 7 kernel version but without any luck.
Ok, I now noticed that when booting with this one http://snapshots.pfsense.org/FreeBSD7/RELENG_1_2/pfSense-20080809-1235.iso.gz as livecd, all of the cpu´s turns up in the syslog, then I install to hd. After a reboot from hd it only shows 1 cpu again, and I did select the smp kernel when installing it to hd this time aswell.
I discovered that when running the LiveCD installer, I looked at the kern.clockrate value and got this:
hz=1000, tick=1000, profhz=666, stathz=133 (all 4 CPU´s shows up when running LiveCD)
But after a installation to the harddrive of pfSense 1.2.1 I got different values:
hz=100, tick=10000, profhz=1024, stathz=128 (only one CPU shows up)
and after I´ve been reading on some BSD forums it seems like there is a known problem with multicore CPU´s (smp kernel) and the clockrate vaules when running different BSD OS´es as GuestOS.
Ok, I found the solution for this.
In the /boot/loader.conf file there is a line called: hint.apic.0.disabled=1, I marked that line out and after a reboot all the assiged vCPU´s came up and it´s working. This works in version 1.2, 1.2.1 and 1.3.
I am glad you went through the trouble of finding this. I was about to start my search!
It worked great for me as well on the 1.2 FreeBSD6.1 kernel.
Great that it works now, but have you seen my comment on VirtualSMP in Vmware?
You should not use this with something like a firewall where SMP doesn’t bring huge performance improvements anyways(and timing is important).
Not only will it perform much worse, it will slow down you’re entire host.