[patch] Auto-setting hz to 100 inside QEMU/VMWare

Robert Watson rwatson at FreeBSD.org
Wed Jan 2 10:31:44 PST 2008


On Wed, 2 Jan 2008, Ed Maste wrote:

> On Tue, Jan 01, 2008 at 10:27:28PM -0600, Mike Silbersack wrote:
>
>> It looks like we're going to go with an alternate implementation that 
>> resides in the loader instead.  The effect will be the same, and it should 
>> be committed within a few days.
>
> I've attached a proof of concept patch that does this in forth in the 
> loader.  I've been using something similar for a while; this patch isi 
> cleaned up somewhat and I've added the kenv strings from Mike's patch.
>
> I've only tried it out with qemu so far.  I'd appreciate reports of any 
> testing with other emulators, and comments from loader/forth gurus.

With this patch, is one forced to use a HZ of 100 when running under a VM 
unless one modifies the loader scripts?  There are times when I experiment 
with alternative HZ settings in VMs, and as such it would be nice to have an 
intentional way to turn off auto-setting of HZ, and/oor specify what the VM HZ 
should be, using loader.conf.

I.e.:

   vmadjusthz_enable="NO"

and

   vmadjusthz_hz="50"

Allowing me to either manually disable the override of kern.hz, or to specify 
what the replacement value should be.

One other variation I'd sort of been thinking about was using the loader to 
set a kernel environmental variable indicating that we're in a VM, but then 
letting the kernel decide what to do about it, per my previous suggestion to 
silby.  That way we could define a kernel option in GENERIC the same way we do 
HZ:

   options VMHZ="100"

The loader would make the decision as to which would be used, but the logic to 
implement the HZ change would be in the kernel.  And loader.conf's kern.hz 
would still be able to override it...

I just want to make sure that we retain all the current flexibility to modify 
HZ at boot-time while having the default be more sensible.

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-current mailing list