Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 May 2014 16:19:25 +0000 (UTC)
From:      Neel Natu <neel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r265364 - head/sys/amd64/vmm
Message-ID:  <201405051619.s45GJPr6074677@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: neel
Date: Mon May  5 16:19:24 2014
New Revision: 265364
URL: http://svnweb.freebsd.org/changeset/base/265364

Log:
  Virtual machine halt detection is turned on by default. Allow it to be
  disabled via the tunable 'hw.vmm.halt_detection'.

Modified:
  head/sys/amd64/vmm/vmm.c

Modified: head/sys/amd64/vmm/vmm.c
==============================================================================
--- head/sys/amd64/vmm/vmm.c	Mon May  5 15:59:31 2014	(r265363)
+++ head/sys/amd64/vmm/vmm.c	Mon May  5 16:19:24 2014	(r265364)
@@ -189,6 +189,16 @@ static VMM_STAT(VCPU_TOTAL_RUNTIME, "vcp
 
 SYSCTL_NODE(_hw, OID_AUTO, vmm, CTLFLAG_RW, NULL, NULL);
 
+/*
+ * Halt the guest if all vcpus are executing a HLT instruction with
+ * interrupts disabled.
+ */
+static int halt_detection_enabled = 1;
+TUNABLE_INT("hw.vmm.halt_detection", &halt_detection_enabled);
+SYSCTL_INT(_hw_vmm, OID_AUTO, halt_detection, CTLFLAG_RDTUN,
+    &halt_detection_enabled, 0,
+    "Halt VM if all vcpus execute HLT with interrupts disabled");
+
 static int vmm_ipinum;
 SYSCTL_INT(_hw_vmm, OID_AUTO, ipinum, CTLFLAG_RD, &vmm_ipinum, 0,
     "IPI vector used for vcpu notifications");
@@ -1047,7 +1057,7 @@ vm_handle_hlt(struct vm *vm, int vcpuid,
 		if (intr_disabled) {
 			wmesg = "vmhalt";
 			VCPU_CTR0(vm, vcpuid, "Halted");
-			if (!vcpu_halted) {
+			if (!vcpu_halted && halt_detection_enabled) {
 				vcpu_halted = 1;
 				CPU_SET_ATOMIC(vcpuid, &vm->halted_cpus);
 			}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405051619.s45GJPr6074677>