[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

kFreeBSD vm guest causing high cpu load

Hi I'm running Debian GNU/kFreeBSD (kernel: 8.2 amd64) as a guest using VirtualBox (4.0.12) on a Windows 7 Professional host. I also have several other vms, including Debian GNU/Linux (kernel: 3.0.0 amd64). My physical machine is an AMD 64-bit hexa-core with 12GB ram.

Now normally, when I have no vms running and my host machine is essentially idle (only a few background processes running), my cpu reports between a 5-10% usage load. When I run my Debian GNU/Linux vm - in runlevel 1 - and let both my guest and host idle (that is I run no foreground processes on the host apart from the vm), my cpu reports between a 10-15% load. But when I run my Debian GNU/kFreeBSD vm - in runlevel 1 - and let both my guest and host idle, my cpu reports between a 20-25% load. (I ran each vm by itself for this test).

I checked the Windows Task Manager (in both test cases), and found that the vm process for the Linux guest was showing a 0% average cpu load when idle. However, the vm process for the kFreeBSD guest showed a >0% cpu load when idle (the actual load varied between 1-5% I believe).

I then read through the VirtualBox documentation and found this (what I believe to be) relevant information:

"Some Linux guests may cause a high CPU load even if the guest system appears to be idle. This can be caused by a high timer frequency of the guest kernel. Some Linux distributions, for example Fedora, ship a Linux kernel configured for a timer frequency of 1000Hz. We recommend to recompile the guest kernel and to select a timer frequency of 100Hz.

Linux kernels shipped with Red Hat Enterprise Linux (RHEL) as of release 4.7 and 5.1 as well as kernels of related Linux distributions (for instance CentOS and Oracle Enterprise Linux) support a kernel parameter divider=N. Hence, such kernels support a lower timer frequency without recompilation. We suggest to add the kernel parameter divider=10 to select a guest kernel timer frequency of 100Hz"

So my question is how can I change the timer frequency of the kFreeBSD kernel? Actually is there any way to confirm the timer frequency is the issue? Does the FreeBSD kernel support the kernel parameter divider=N? If so, how do I add that parameter? That is, where do I add it? If that parameter is not supported, how do I recompile the kernel? Perhaps a variant of the stock kernel, recompiled to fix this issue for at least those who run kFreeBSD on VirtualBox, can be included in the package repository?


David Watson
e: hiranwatson@gmail.com

Reply to: