linux_dsm_epyc7002/arch/x86/kvm
Paolo Bonzini 64b5bd2704 KVM: nSVM: ignore L1 interrupt window while running L2 with V_INTR_MASKING=1
If a nested VM is started while an IRQ was pending and with
V_INTR_MASKING=1, the behavior of the guest depends on host IF.  If it
is 1, the VM should exit immediately, before executing the first
instruction of the guest, because VMRUN sets GIF back to 1.

If it is 0 and the host has VGIF, however, at the time of the VMRUN
instruction L0 is running the guest with a pending interrupt window
request.  This interrupt window request is completely irrelevant to
L2, since IF only controls virtual interrupts, so this patch drops
INTERCEPT_VINTR from the VMCB while running L2 under these circumstances.
To simplify the code, both steps of enabling the interrupt window
(setting the VINTR intercept and requesting a fake virtual interrupt
in svm_inject_irq) are grouped in the svm_set_vintr function, and
likewise for dismissing the interrupt window request in svm_clear_vintr.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-03-16 17:58:53 +01:00
..
mmu KVM: x86: rename set_cr3 callback and related flags to load_mmu_pgd 2020-03-16 17:58:52 +01:00
vmx KVM: x86: rename set_cr3 callback and related flags to load_mmu_pgd 2020-03-16 17:58:52 +01:00
cpuid.c KVM: x86: Refactor kvm_cpuid() param that controls out-of-range logic 2020-03-16 17:58:50 +01:00
cpuid.h KVM: x86: Refactor kvm_cpuid() param that controls out-of-range logic 2020-03-16 17:58:50 +01:00
debugfs.c KVM: no need to check return value of debugfs_create functions 2019-08-05 12:55:49 +02:00
emulate.c KVM: x86: Refactor kvm_cpuid() param that controls out-of-range logic 2020-03-16 17:58:50 +01:00
hyperv.c kvm: x86: hyperv: Use APICv update request interface 2020-02-05 15:17:43 +01:00
hyperv.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 2019-06-19 17:09:53 +02:00
i8254.c KVM: x86: Fix print format and coding style 2020-03-16 17:57:08 +01:00
i8254.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
i8259.c KVM: x86: Refactor picdev_write() to prevent Spectre-v1/L1TF attacks 2020-01-27 19:59:37 +01:00
ioapic.c kvm: ioapic: Lazy update IOAPIC EOI 2020-02-05 15:17:44 +01:00
ioapic.h KVM: X86: Move irrelevant declarations out of ioapic.h 2020-01-08 17:33:14 +01:00
irq_comm.c KVM: x86: don't notify userspace IOAPIC on edge-triggered interrupt EOI 2020-02-21 18:04:57 +01:00
irq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 320 2019-06-05 17:37:05 +02:00
irq.h KVM: X86: Move irrelevant declarations out of ioapic.h 2020-01-08 17:33:14 +01:00
Kconfig KVM: VMX: Allow KVM_INTEL when building for Centaur and/or Zhaoxin CPUs 2020-01-13 19:35:33 +01:00
kvm_cache_regs.h KVM: x86: Fold decache_cr3() into cache_reg() 2019-10-22 13:34:16 +02:00
kvm_emulate.h KVM: x86: Refactor kvm_cpuid() param that controls out-of-range logic 2020-03-16 17:58:50 +01:00
lapic.c KVM: LAPIC: Recalculate apic map in batch 2020-03-16 17:57:39 +01:00
lapic.h KVM: LAPIC: Recalculate apic map in batch 2020-03-16 17:57:39 +01:00
Makefile KVM: x86: enable -Werror 2020-02-12 20:15:29 +01:00
mmu_audit.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 2019-06-19 17:09:53 +02:00
mmu.h KVM: x86: rename set_cr3 callback and related flags to load_mmu_pgd 2020-03-16 17:58:52 +01:00
mmutrace.h KVM: x86: fix incorrect comparison in trace event 2020-02-20 18:13:44 +01:00
mtrr.c KVM: x86: Protect MSR-based index computations in fixed_msr_to_seg_unit() from Spectre-v1/L1TF attacks 2020-01-27 19:59:39 +01:00
pmu_amd.c KVM: x86/vPMU: Add lazy mechanism to release perf_event per vPMC 2019-11-15 11:44:10 +01:00
pmu.c KVM: x86: Adjust counter sample period after a wrmsr 2020-03-16 17:57:30 +01:00
pmu.h KVM: x86: Adjust counter sample period after a wrmsr 2020-03-16 17:57:30 +01:00
svm.c KVM: nSVM: ignore L1 interrupt window while running L2 with V_INTR_MASKING=1 2020-03-16 17:58:53 +01:00
trace.h KVM: x86: Dynamically allocate per-vCPU emulation context 2020-03-16 17:57:52 +01:00
tss.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
x86.c KVM: x86: rename set_cr3 callback and related flags to load_mmu_pgd 2020-03-16 17:58:52 +01:00
x86.h KVM: CPUID: add support for supervisor states 2020-03-16 17:58:45 +01:00