Skip site navigation (1)Skip section navigation (2)
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>