Date: Tue, 06 May 2014 12:10:59 +0800 From: Julian Elischer <julian@freebsd.org> To: Neel Natu <neel@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r265364 - head/sys/amd64/vmm Message-ID: <536860D3.5030205@freebsd.org> In-Reply-To: <201405051619.s45GJPr6074677@svn.freebsd.org> References: <201405051619.s45GJPr6074677@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5/6/14, 12:19 AM, Neel Natu wrote: > 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'. So this can only be changed at boot time for the host? not even as a sysctl? Why is that? Why can this not be done from the App? > 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?536860D3.5030205>