Revision b5861e5cf2fcf83031ea3e26b0a69d887adf7d21 authored by Liran Alon on 03 September 2018, 12:20:22 UTC, committed by Radim Krčmář on 07 September 2018, 16:38:42 UTC
Consider the case L1 had a IRQ/NMI event until it executed
VMLAUNCH/VMRESUME which wasn't delivered because it was disallowed
(e.g. interrupts disabled). When L1 executes VMLAUNCH/VMRESUME,
L0 needs to evaluate if this pending event should cause an exit from
L2 to L1 or delivered directly to L2 (e.g. In case L1 don't intercept
EXTERNAL_INTERRUPT).

Usually this would be handled by L0 requesting a IRQ/NMI window
by setting VMCS accordingly. However, this setting was done on
VMCS01 and now VMCS02 is active instead. Thus, when L1 executes
VMLAUNCH/VMRESUME we force L0 to perform pending event evaluation by
requesting a KVM_REQ_EVENT.

Note that above scenario exists when L1 KVM is about to enter L2 but
requests an "immediate-exit". As in this case, L1 will
disable-interrupts and then send a self-IPI before entering L2.

Reviewed-by: Nikita Leshchenko <nikita.leshchenko@oracle.com>
Co-developed-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
1 parent 564ad0a
History
File Mode Size
bridge
amdgpu.rst -rw-r--r-- 2.7 KB
conf.py -rw-r--r-- 219 bytes
drivers.rst -rw-r--r-- 278 bytes
drm-client.rst -rw-r--r-- 229 bytes
drm-internals.rst -rw-r--r-- 8.8 KB
drm-kms-helpers.rst -rw-r--r-- 8.1 KB
drm-kms.rst -rw-r--r-- 18.1 KB
drm-mm.rst -rw-r--r-- 20.6 KB
drm-uapi.rst -rw-r--r-- 12.7 KB
i915.rst -rw-r--r-- 17.8 KB
index.rst -rw-r--r-- 347 bytes
introduction.rst -rw-r--r-- 4.5 KB
kms-properties.csv -rw-r--r-- 7.6 KB
meson.rst -rw-r--r-- 1.8 KB
msm-crash-dump.rst -rw-r--r-- 2.4 KB
pl111.rst -rw-r--r-- 221 bytes
tegra.rst -rw-r--r-- 7.2 KB
tinydrm.rst -rw-r--r-- 926 bytes
todo.rst -rw-r--r-- 19.9 KB
tve200.rst -rw-r--r-- 204 bytes
v3d.rst -rw-r--r-- 759 bytes
vc4.rst -rw-r--r-- 2.1 KB
vga-switcheroo.rst -rw-r--r-- 1.9 KB
vgaarbiter.rst -rw-r--r-- 8.0 KB
xen-front.rst -rw-r--r-- 1010 bytes

back to top