On 05/11/2017 15:07, Liran Alon wrote: > Hi, > > This series of patches aim to fix multiple related issues with how > pending event injection works on nVMX. > > The first patch fixes a simple error in the return-value of > vmx_check_nested_events(). Next patch relies on it to correctly > determine when an immediate-exit is required from L2 to L1. > > The second patch fixes a critical bug which caused L1 to miss an IPI > in case it was sent when destination CPU exited from L2 to L0 due to > event-delivery. > > The third patch removes a now reduntant signaling of KVM_REQ_EVENT. > This actually masked the issue fixed in the previous patch. > > The fourth patch fixes an issue of not always syncing PIR to L1 > Virtual-APIC-Page when KVM_REQ_EVENT is signaled. This patch relies > on vmx_check_nested_events() always being called when KVM_REQ_EVENT is > set which is true since the second patch. With all the discussions on the other series, I didn't reply here. I haven't commented yet because I want to see first of all whether we have coverage in kvm-unit-tests of the issue that the first two patches fix (i.e., does something break in kvm-unit-tests if I only apply patch 3). Also, I had some incomplete work that eliminates vmx_inject_page_fault_nested (which IMO is only papering over bugs, because anything it does should be covered in theory by nested_vmx_inject_exception_vmexit). I'm curious if patches 1-2 help there too. However, all this is going to be work for 4.16. Paolo