summaryrefslogtreecommitdiff
path: root/sys/kern/subr_param.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/subr_param.c')
-rw-r--r--sys/kern/subr_param.c67
1 files changed, 8 insertions, 59 deletions
diff --git a/sys/kern/subr_param.c b/sys/kern/subr_param.c
index d16f2dc4f113..95f3250ee235 100644
--- a/sys/kern/subr_param.c
+++ b/sys/kern/subr_param.c
@@ -99,7 +99,11 @@ pid_t pid_max = PID_MAX;
long maxswzone; /* max swmeta KVA storage */
long maxbcache; /* max buffer cache KVA storage */
long maxpipekva; /* Limit on pipe KVA */
-int vm_guest; /* Running as virtual machine guest? */
+#ifdef XEN
+int vm_guest = VM_GUEST_XEN;
+#else
+int vm_guest = VM_GUEST_NO; /* Running as virtual machine guest? */
+#endif
u_long maxtsiz; /* max text size */
u_long dfldsiz; /* initial data size limit */
u_long maxdsiz; /* max data size */
@@ -136,7 +140,7 @@ SYSCTL_ULONG(_kern, OID_AUTO, sgrowsiz, CTLFLAG_RWTUN | CTLFLAG_NOFETCH, &sgrows
"Amount to grow stack on a stack fault");
SYSCTL_PROC(_kern, OID_AUTO, vm_guest, CTLFLAG_RD | CTLTYPE_STRING,
NULL, 0, sysctl_kern_vm_guest, "A",
- "Virtual machine guest detected? (none|generic|xen)");
+ "Virtual machine guest detected?");
/*
* These have to be allocated somewhere; allocating
@@ -154,73 +158,18 @@ static const char *const vm_guest_sysctl_names[] = {
"generic",
"xen",
"hv",
+ "vmware",
NULL
};
CTASSERT(nitems(vm_guest_sysctl_names) - 1 == VM_LAST);
-#ifndef XEN
-static const char *const vm_bnames[] = {
- "QEMU", /* QEMU */
- "Plex86", /* Plex86 */
- "Bochs", /* Bochs */
- "Xen", /* Xen */
- "BHYVE", /* bhyve */
- "Seabios", /* KVM */
- NULL
-};
-
-static const char *const vm_pnames[] = {
- "VMware Virtual Platform", /* VMWare VM */
- "Virtual Machine", /* Microsoft VirtualPC */
- "VirtualBox", /* Sun xVM VirtualBox */
- "Parallels Virtual Platform", /* Parallels VM */
- "KVM", /* KVM */
- NULL
-};
-
-
-/*
- * Detect known Virtual Machine hosts by inspecting the emulated BIOS.
- */
-static enum VM_GUEST
-detect_virtual(void)
-{
- char *sysenv;
- int i;
-
- sysenv = kern_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 (VM_GUEST_VM);
- }
- freeenv(sysenv);
- }
- sysenv = kern_getenv("smbios.system.product");
- if (sysenv != NULL) {
- for (i = 0; vm_pnames[i] != NULL; i++)
- if (strcmp(sysenv, vm_pnames[i]) == 0) {
- freeenv(sysenv);
- return (VM_GUEST_VM);
- }
- freeenv(sysenv);
- }
- return (VM_GUEST_NO);
-}
-#endif
-
/*
* Boot time overrides that are not scaled against main memory
*/
void
init_param1(void)
{
-#ifndef XEN
- vm_guest = detect_virtual();
-#else
- vm_guest = VM_GUEST_XEN;
-#endif
+
hz = -1;
TUNABLE_INT_FETCH("kern.hz", &hz);
if (hz == -1)