From owner-svn-src-all@FreeBSD.ORG Tue May 6 04:11:21 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 92524819; Tue, 6 May 2014 04:11:21 +0000 (UTC) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 64EE5C24; Tue, 6 May 2014 04:11:21 +0000 (UTC) Received: from jre-mbp.elischer.org (ppp121-45-232-70.lns20.per1.internode.on.net [121.45.232.70]) (authenticated bits=0) by vps1.elischer.org (8.14.8/8.14.8) with ESMTP id s464B5un000332 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Mon, 5 May 2014 21:11:13 -0700 (PDT) (envelope-from julian@freebsd.org) Message-ID: <536860D3.5030205@freebsd.org> Date: Tue, 06 May 2014 12:10:59 +0800 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Neel Natu , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r265364 - head/sys/amd64/vmm References: <201405051619.s45GJPr6074677@svn.freebsd.org> In-Reply-To: <201405051619.s45GJPr6074677@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 May 2014 04:11:21 -0000 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); > } > > >