svn commit: r265364 - head/sys/amd64/vmm
Neel Natu
neelnatu at gmail.com
Tue May 6 15:52:31 UTC 2014
Hi Julian,
On Mon, May 5, 2014 at 9:10 PM, Julian Elischer <julian at freebsd.org> wrote:
> 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?
The tunable can be set any time before loading vmm.ko:
- If you load vmm.ko at boot time then it needs to be set via loader.conf.
- If you load vmm.ko after the host is booted then it can be set via kenv(1).
> Why is that?
It is the easiest way to change the default without any additional complexity.
> Why can this not be done from the App?
It can be done but I don't think it would be used much.
best
Neel
>
>> 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-head
mailing list