svn commit: r185772 - head/sys/kern
Jung-uk Kim
jkim at FreeBSD.org
Mon Dec 8 10:40:00 PST 2008
Author: jkim
Date: Mon Dec 8 18:39:59 2008
New Revision: 185772
URL: http://svn.freebsd.org/changeset/base/185772
Log:
- Detect Bochs BIOS variants and use HZ_VM as well.
- Free kernel environment variable after its use.
- Fix style(9) nits.
Modified:
head/sys/kern/subr_param.c
Modified: head/sys/kern/subr_param.c
==============================================================================
--- head/sys/kern/subr_param.c Mon Dec 8 17:22:44 2008 (r185771)
+++ head/sys/kern/subr_param.c Mon Dec 8 18:39:59 2008 (r185772)
@@ -118,6 +118,13 @@ SYSCTL_ULONG(_kern, OID_AUTO, sgrowsiz,
*/
struct buf *swbuf;
+static const char *const vm_bnames[] = {
+ "QEMU", /* QEMU */
+ "Plex86", /* Plex86 */
+ "Bochs", /* Bochs */
+ NULL
+};
+
static const char *const vm_pnames[] = {
"VMware Virtual Platform", /* VMWare VM */
"Virtual Machine", /* Microsoft VirtualPC */
@@ -132,14 +139,25 @@ detect_virtual(void)
char *sysenv;
int i;
+ sysenv = getenv("smbios.bios.vendor");
+ if (sysenv != NULL) {
+ for (i = 0; vm_bnames[i] != NULL; i++)
+ if (strcmp(sysenv, vm_bnames[i]) == 0) {
+ freeenv(sysenv);
+ return (1);
+ }
+ freeenv(sysenv);
+ }
sysenv = getenv("smbios.system.product");
if (sysenv != NULL) {
- for (i = 0; vm_pnames[i] != NULL; i++) {
- if (strcmp(sysenv, vm_pnames[i]) == 0)
- return 1;
- }
+ for (i = 0; vm_pnames[i] != NULL; i++)
+ if (strcmp(sysenv, vm_pnames[i]) == 0) {
+ freeenv(sysenv);
+ return (1);
+ }
+ freeenv(sysenv);
}
- return 0;
+ return (0);
}
/*
@@ -151,13 +169,8 @@ init_param1(void)
hz = -1;
TUNABLE_INT_FETCH("kern.hz", &hz);
- if (hz == -1) {
- if (detect_virtual()) {
- hz = HZ_VM;
- } else {
- hz = HZ;
- }
- }
+ if (hz == -1)
+ hz = detect_virtual() ? HZ_VM : HZ;
tick = 1000000 / hz;
#ifdef VM_SWZONE_SIZE_MAX
More information about the svn-src-all
mailing list