Date: Sat, 27 Dec 2008 18:42:25 +0100 From: "Antoine Brodin" <antoine@freebsd.org> To: "Ivan Voras" <ivoras@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r186252 - head/sys/kern Message-ID: <f19c444a0812270942m39d35ba8teb54943a7f76e@mail.gmail.com> In-Reply-To: <200812171957.mBHJvCO2013765@svn.freebsd.org> References: <200812171957.mBHJvCO2013765@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Dec 17, 2008 at 8:57 PM, Ivan Voras <ivoras@freebsd.org> wrote: > Author: ivoras > Date: Wed Dec 17 19:57:12 2008 > New Revision: 186252 > URL: http://svn.freebsd.org/changeset/base/186252 > > Log: > Introduce a sysctl kern.vm_guest that reflects what the kernel knows about > it running under a virtual environment. This also introduces a globally > accessible variable vm_guest that can be used where appropriate in the > kernel to inspect this environment. > > To make it easier for the long run, an enum VM_GUEST is also introduced, > which could possibly be factored out in a header somewhere (but the > question is where - vm/vm_param.h? sys/param.h?) so it eventually becomes > a part of the standard KPI. In any case, it's a start. > > The purpose of all this isn't to absolutely detect that the OS is running > under a virtual environment (cf. "redpill") but to allow the parts of the > kernel and the userland that care about this particular aspect and can do > something useful depending on it to have a standardised interface. Reducing > kern.hz is one example but there are other things that could be done like > avoiding context switches, not using CPU instructions that are known to be > slow in emulation, possibly different strategies in VM (memory) allocation, > CPU scheduling, etc. > > It isn't clear if the JAILS/VIMAGE functionality should also be exposed > by this particular mechanism (probably not since they're not "full" > virtual hardware environments). Sometime in the future another sysctl and > a variable could be introduced to reflect if the kernel supports any kind > of virtual hosting (e.g. VMWare VMI, Xen dom0). > > Reviewed by: silence from src-commiters@, virtualization@, kmacy@ > Approved by: gnn (mentor) > Security: Obscurity doesn't help. > > Modified: > head/sys/kern/subr_param.c > > Modified: head/sys/kern/subr_param.c [snip] > +enum VM_GUEST { VM_GUEST_NO, VM_GUEST_VM, VM_GUEST_XEN }; > + [snip] > - hz = detect_virtual() ? HZ_VM : HZ; > + hz = vm_guest > VM_GUEST_NO ? HZ_VM : HZ; [snip] Hi Ivan, Could you change VM_GUEST_NO / VM_GUEST_VM / VM_GUEST_XEN to a #define or explicitly initialize them? The magnitude comparison between vm_guest and VM_GUEST_NO looks like gratuitous obfuscation. Cheers, Antoine
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f19c444a0812270942m39d35ba8teb54943a7f76e>