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
caching
cifs
configfs
ext4
nfs
pohmelfs
00-INDEX -rw-r--r-- 4.8 KB
9p.txt -rw-r--r-- 5.7 KB
Locking -rw-r--r-- 24.0 KB
adfs.txt -rw-r--r-- 2.6 KB
affs.txt -rw-r--r-- 8.1 KB
afs.txt -rw-r--r-- 7.9 KB
autofs-mount-control.txt -rw-r--r-- 17.8 KB
autofs.txt -rw-r--r-- 23.4 KB
automount-support.txt -rw-r--r-- 3.5 KB
befs.txt -rw-r--r-- 3.5 KB
bfs.txt -rw-r--r-- 2.1 KB
btrfs.txt -rw-r--r-- 1.1 KB
ceph.txt -rw-r--r-- 6.4 KB
coda.txt -rw-r--r-- 48.6 KB
conf.py -rw-r--r-- 214 bytes
cramfs.txt -rw-r--r-- 4.3 KB
dax.txt -rw-r--r-- 5.8 KB
debugfs.txt -rw-r--r-- 9.5 KB
devpts.txt -rw-r--r-- 1.3 KB
directory-locking -rw-r--r-- 6.3 KB
dlmfs.txt -rw-r--r-- 4.2 KB
dnotify.txt -rw-r--r-- 2.9 KB
ecryptfs.txt -rw-r--r-- 2.3 KB
efivarfs.txt -rw-r--r-- 975 bytes
exofs.txt -rw-r--r-- 8.5 KB
ext2.txt -rw-r--r-- 17.9 KB
ext3.txt -rw-r--r-- 415 bytes
f2fs.txt -rw-r--r-- 33.9 KB
fiemap.txt -rw-r--r-- 9.5 KB
files.txt -rw-r--r-- 4.1 KB
fscrypt.rst -rw-r--r-- 29.1 KB
fuse-io.txt -rw-r--r-- 1.8 KB
fuse.txt -rw-r--r-- 15.8 KB
gfs2-glocks.txt -rw-r--r-- 10.5 KB
gfs2-uevents.txt -rw-r--r-- 3.7 KB
gfs2.txt -rw-r--r-- 1.8 KB
hfs.txt -rw-r--r-- 2.9 KB
hfsplus.txt -rw-r--r-- 1.7 KB
hpfs.txt -rw-r--r-- 14.8 KB
index.rst -rw-r--r-- 10.6 KB
inotify.txt -rw-r--r-- 3.8 KB
isofs.txt -rw-r--r-- 2.5 KB
jfs.txt -rw-r--r-- 2.3 KB
locks.txt -rw-r--r-- 2.7 KB
mandatory-locking.txt -rw-r--r-- 8.0 KB
nilfs2.txt -rw-r--r-- 10.8 KB
ntfs.txt -rw-r--r-- 19.7 KB
ocfs2-online-filecheck.txt -rw-r--r-- 3.8 KB
ocfs2.txt -rw-r--r-- 4.5 KB
omfs.txt -rw-r--r-- 4.0 KB
orangefs.txt -rw-r--r-- 19.1 KB
overlayfs.txt -rw-r--r-- 20.6 KB
path-lookup.md -rw-r--r-- 64.2 KB
path-lookup.txt -rw-r--r-- 18.5 KB
porting -rw-r--r-- 24.0 KB
proc.txt -rw-r--r-- 88.8 KB
qnx6.txt -rw-r--r-- 7.1 KB
quota.txt -rw-r--r-- 3.2 KB
ramfs-rootfs-initramfs.txt -rw-r--r-- 15.9 KB
relay.txt -rw-r--r-- 21.1 KB
romfs.txt -rw-r--r-- 8.3 KB
seq_file.txt -rw-r--r-- 14.4 KB
sharedsubtree.txt -rw-r--r-- 29.0 KB
spufs.txt -rw-r--r-- 20.3 KB
squashfs.txt -rw-r--r-- 10.4 KB
sysfs-pci.txt -rw-r--r-- 5.7 KB
sysfs-tagging.txt -rw-r--r-- 1.8 KB
sysfs.txt -rw-r--r-- 11.8 KB
sysv-fs.txt -rw-r--r-- 7.4 KB
tmpfs.txt -rw-r--r-- 6.5 KB
ubifs.txt -rw-r--r-- 5.1 KB
udf.txt -rw-r--r-- 2.7 KB
ufs.txt -rw-r--r-- 1.2 KB
vfat.txt -rw-r--r-- 15.7 KB
vfs.txt -rw-r--r-- 52.8 KB
xfs-delayed-logging-design.txt -rw-r--r-- 40.5 KB
xfs-self-describing-metadata.txt -rw-r--r-- 16.5 KB
xfs.txt -rw-r--r-- 17.3 KB

back to top