bhyve: Ignore MSI/MSI-X interrupts sent to non-active vCPUs in
physical destination mode. This is mostly a nop, because the vmm initializes all vCPUs up to vm_maxcpus, so even if the target CPU is not active, lapic/vlapic code still has the valid data to use. As John notes, dropping such interrupts more closely matches the real harware, which ignores all interrupts for not started APs. Reviewed by: jhb admbugs: 837 MFC after: 1 week Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
f349c821f5
commit
e550631697
@ -838,7 +838,8 @@ vlapic_calcdest(struct vm *vm, cpuset_t *dmask, uint32_t dest, bool phys,
|
||||
*/
|
||||
CPU_ZERO(dmask);
|
||||
vcpuid = vm_apicid2vcpuid(vm, dest);
|
||||
if (vcpuid < vm_get_maxcpus(vm))
|
||||
amask = vm_active_cpus(vm);
|
||||
if (vcpuid < vm_get_maxcpus(vm) && CPU_ISSET(vcpuid, &amask))
|
||||
CPU_SET(vcpuid, dmask);
|
||||
} else {
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user