svn commit: r265364 - head/sys/amd64/vmm

Julian Elischer julian at freebsd.org
Tue May 6 04:11:21 UTC 2014


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);
>   			}
>
>
>



More information about the svn-src-all mailing list