Hi
[This is an automated email]
This commit has been processed because it contains a "Fixes:" tag fixing commit: 705699a13994 ("KVM: nVMX: Enable nested posted interrupt processing").
The bot has tested the following trees: v5.8.2, v5.7.16, v5.4.59, v4.19.140, v4.14.193, v4.9.232, v4.4.232.
v5.8.2: Build OK! v5.7.16: Build OK! v5.4.59: Failed to apply! Possible dependencies: 59508b303e4e ("KVM: X86: Move irrelevant declarations out of ioapic.h") 5c69d5c113f1 ("KVM: X86: Fix callers of kvm_apic_match_dest() to use correct macros")
v4.19.140: Failed to apply! Possible dependencies: 0b0a31badb2d ("KVM: x86: hyperv: valid_bank_mask should be 'u64'") 214ff83d4473 ("KVM: x86: hyperv: implement PV IPI send hypercalls") 2cefc5feb80c ("KVM: x86: hyperv: optimize kvm_hv_flush_tlb() for vp_index == vcpu_idx case") 360cae313702 ("KVM: PPC: Book3S HV: Nested guest entry via hypercall") 59508b303e4e ("KVM: X86: Move irrelevant declarations out of ioapic.h") 5c69d5c113f1 ("KVM: X86: Fix callers of kvm_apic_match_dest() to use correct macros") 89329c0be8bd ("KVM: PPC: Book3S HV: Clear partition table entry on vm teardown") 8e3f5fc1045d ("KVM: PPC: Book3S HV: Framework and hcall stubs for nested virtualization") a812297c4fd9 ("KVM: x86: hyperv: optimize 'all cpus' case in kvm_hv_flush_tlb()") aa069a996951 ("KVM: PPC: Book3S HV: Add a VM capability to enable nested virtualization") e6b6c483ebe9 ("KVM: x86: hyperv: fix 'tlb_lush' typo") f21dd494506a ("KVM: x86: hyperv: optimize sparse VP set processing")
v4.14.193: Failed to apply! Possible dependencies: 0234bf885236 ("KVM: x86: introduce ISA specific SMM entry/exit callbacks") 05cade71cf3b ("KVM: nSVM: fix SMI injection in guest mode") 44883f01fe6a ("KVM: x86: ensure all MSRs can always be KVM_GET/SET_MSR'd") 59508b303e4e ("KVM: X86: Move irrelevant declarations out of ioapic.h") 5acc5c063196 ("KVM: Introduce KVM_MEMORY_ENCRYPT_OP ioctl") 5c69d5c113f1 ("KVM: X86: Fix callers of kvm_apic_match_dest() to use correct macros") 69eaedee411c ("KVM: Introduce KVM_MEMORY_ENCRYPT_{UN,}REG_REGION ioctl") 72d7b374b14d ("KVM: x86: introduce ISA specific smi_allowed callback") a2e164e7f45a ("x86/kvm/hyper-v: add reenlightenment MSRs support") cc3d967f7e32 ("KVM: SVM: detect opening of SMI window using STGI intercept") f21dd494506a ("KVM: x86: hyperv: optimize sparse VP set processing") faeb7833eee0 ("kvm: x86: hyperv: guest->host event signaling via eventfd")
v4.9.232: Failed to apply! Possible dependencies: 004172bdad64 ("sched/core: Remove unnecessary #include headers") 174cd4b1e5fb ("sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h>") 3aa53859d23e ("KVM: Documentation: document MCE ioctls") 3ca0ff571b09 ("locking/mutex: Rework mutex::owner") 4036e3874a1c ("KVM: s390: ioctls to get and set guest storage attributes") 44883f01fe6a ("KVM: x86: ensure all MSRs can always be KVM_GET/SET_MSR'd") 59508b303e4e ("KVM: X86: Move irrelevant declarations out of ioapic.h") 5acc5c063196 ("KVM: Introduce KVM_MEMORY_ENCRYPT_OP ioctl") 5c69d5c113f1 ("KVM: X86: Fix callers of kvm_apic_match_dest() to use correct macros") 69eaedee411c ("KVM: Introduce KVM_MEMORY_ENCRYPT_{UN,}REG_REGION ioctl") a2e164e7f45a ("x86/kvm/hyper-v: add reenlightenment MSRs support") ae7e81c077d6 ("sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h>") b3c045d33218 ("KVM: lapic: remove unnecessary KVM_REQ_EVENT on PPR update") c92701322711 ("KVM: PPC: Book3S HV: Add userspace interfaces for POWER9 MMU") ea8b1c4a6019 ("drivers: psci: PSCI checker module") eb90f3417a0c ("KVM: vmx: speed up TPR below threshold vmexits") ef1ead0c3b1d ("KVM: PPC: Book3S HV: HPT resizing documentation and reserved numbers") f21dd494506a ("KVM: x86: hyperv: optimize sparse VP set processing") faeb7833eee0 ("kvm: x86: hyperv: guest->host event signaling via eventfd")
v4.4.232: Failed to apply! Possible dependencies: 1e6e2755b635 ("KVM: x86: Misc LAPIC changes to expose helper functions") 520040146a0a ("KVM: x86: Use vector-hashing to deliver lowest-priority interrupts") 5c919412fe61 ("kvm/x86: Hyper-V synthetic interrupt controller") 6308630bd3db ("kvm/x86: split ioapic-handled and EOI exit bitmaps") b3c045d33218 ("KVM: lapic: remove unnecessary KVM_REQ_EVENT on PPR update") d62caabb41f3 ("kvm/x86: per-vcpu apicv deactivation support")
NOTE: The patch will not be queued to stable trees until it is upstream.
How should we proceed with this patch?
Queued, thanks.
I cannot think of a "nicer" way to do this, we could perhaps move
+ vmx->nested.pi_pending = true; + kvm_make_request(KVM_REQ_EVENT, vcpu); + kvm_apic_clear_irr(vcpu, vmx->nested.posted_intr_nv);
to a separate function (possibly with the IRR clear made conditional, so that we can reuse the function for regular posted interrupt injection) but that is it.
Paolo
On 26/08/20 15:54, Sasha Levin wrote:
Hi
[This is an automated email]
This commit has been processed because it contains a "Fixes:" tag fixing commit: 705699a13994 ("KVM: nVMX: Enable nested posted interrupt processing").
The bot has tested the following trees: v5.8.2, v5.7.16, v5.4.59, v4.19.140, v4.14.193, v4.9.232, v4.4.232.
v5.8.2: Build OK! v5.7.16: Build OK! v5.4.59: Failed to apply! Possible dependencies: 59508b303e4e ("KVM: X86: Move irrelevant declarations out of ioapic.h") 5c69d5c113f1 ("KVM: X86: Fix callers of kvm_apic_match_dest() to use correct macros")
v4.19.140: Failed to apply! Possible dependencies: 0b0a31badb2d ("KVM: x86: hyperv: valid_bank_mask should be 'u64'") 214ff83d4473 ("KVM: x86: hyperv: implement PV IPI send hypercalls") 2cefc5feb80c ("KVM: x86: hyperv: optimize kvm_hv_flush_tlb() for vp_index == vcpu_idx case") 360cae313702 ("KVM: PPC: Book3S HV: Nested guest entry via hypercall") 59508b303e4e ("KVM: X86: Move irrelevant declarations out of ioapic.h") 5c69d5c113f1 ("KVM: X86: Fix callers of kvm_apic_match_dest() to use correct macros") 89329c0be8bd ("KVM: PPC: Book3S HV: Clear partition table entry on vm teardown") 8e3f5fc1045d ("KVM: PPC: Book3S HV: Framework and hcall stubs for nested virtualization") a812297c4fd9 ("KVM: x86: hyperv: optimize 'all cpus' case in kvm_hv_flush_tlb()") aa069a996951 ("KVM: PPC: Book3S HV: Add a VM capability to enable nested virtualization") e6b6c483ebe9 ("KVM: x86: hyperv: fix 'tlb_lush' typo") f21dd494506a ("KVM: x86: hyperv: optimize sparse VP set processing")
v4.14.193: Failed to apply! Possible dependencies: 0234bf885236 ("KVM: x86: introduce ISA specific SMM entry/exit callbacks") 05cade71cf3b ("KVM: nSVM: fix SMI injection in guest mode") 44883f01fe6a ("KVM: x86: ensure all MSRs can always be KVM_GET/SET_MSR'd") 59508b303e4e ("KVM: X86: Move irrelevant declarations out of ioapic.h") 5acc5c063196 ("KVM: Introduce KVM_MEMORY_ENCRYPT_OP ioctl") 5c69d5c113f1 ("KVM: X86: Fix callers of kvm_apic_match_dest() to use correct macros") 69eaedee411c ("KVM: Introduce KVM_MEMORY_ENCRYPT_{UN,}REG_REGION ioctl") 72d7b374b14d ("KVM: x86: introduce ISA specific smi_allowed callback") a2e164e7f45a ("x86/kvm/hyper-v: add reenlightenment MSRs support") cc3d967f7e32 ("KVM: SVM: detect opening of SMI window using STGI intercept") f21dd494506a ("KVM: x86: hyperv: optimize sparse VP set processing") faeb7833eee0 ("kvm: x86: hyperv: guest->host event signaling via eventfd")
v4.9.232: Failed to apply! Possible dependencies: 004172bdad64 ("sched/core: Remove unnecessary #include headers") 174cd4b1e5fb ("sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h>") 3aa53859d23e ("KVM: Documentation: document MCE ioctls") 3ca0ff571b09 ("locking/mutex: Rework mutex::owner") 4036e3874a1c ("KVM: s390: ioctls to get and set guest storage attributes") 44883f01fe6a ("KVM: x86: ensure all MSRs can always be KVM_GET/SET_MSR'd") 59508b303e4e ("KVM: X86: Move irrelevant declarations out of ioapic.h") 5acc5c063196 ("KVM: Introduce KVM_MEMORY_ENCRYPT_OP ioctl") 5c69d5c113f1 ("KVM: X86: Fix callers of kvm_apic_match_dest() to use correct macros") 69eaedee411c ("KVM: Introduce KVM_MEMORY_ENCRYPT_{UN,}REG_REGION ioctl") a2e164e7f45a ("x86/kvm/hyper-v: add reenlightenment MSRs support") ae7e81c077d6 ("sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h>") b3c045d33218 ("KVM: lapic: remove unnecessary KVM_REQ_EVENT on PPR update") c92701322711 ("KVM: PPC: Book3S HV: Add userspace interfaces for POWER9 MMU") ea8b1c4a6019 ("drivers: psci: PSCI checker module") eb90f3417a0c ("KVM: vmx: speed up TPR below threshold vmexits") ef1ead0c3b1d ("KVM: PPC: Book3S HV: HPT resizing documentation and reserved numbers") f21dd494506a ("KVM: x86: hyperv: optimize sparse VP set processing") faeb7833eee0 ("kvm: x86: hyperv: guest->host event signaling via eventfd")
v4.4.232: Failed to apply! Possible dependencies: 1e6e2755b635 ("KVM: x86: Misc LAPIC changes to expose helper functions") 520040146a0a ("KVM: x86: Use vector-hashing to deliver lowest-priority interrupts") 5c919412fe61 ("kvm/x86: Hyper-V synthetic interrupt controller") 6308630bd3db ("kvm/x86: split ioapic-handled and EOI exit bitmaps") b3c045d33218 ("KVM: lapic: remove unnecessary KVM_REQ_EVENT on PPR update") d62caabb41f3 ("kvm/x86: per-vcpu apicv deactivation support")
NOTE: The patch will not be queued to stable trees until it is upstream.
How should we proceed with this patch?
On Wed, Sep 23, 2020 at 04:44:01PM +0200, Paolo Bonzini wrote:
Queued, thanks.
I cannot think of a "nicer" way to do this, we could perhaps move
vmx->nested.pi_pending = true;
kvm_make_request(KVM_REQ_EVENT, vcpu);
kvm_apic_clear_irr(vcpu, vmx->nested.posted_intr_nv);
to a separate function (possibly with the IRR clear made conditional, so that we can reuse the function for regular posted interrupt injection) but that is it.
Ya, I played around with similar approaches and didn't particular like any of them :-/
For the record, I suspect there may be additional issues with a doubly nested scenario, i.e. when running L3 and L2 is using the self-IPI method for triggering posted interrupts. I sort of tested once, and it appeared to be broken, but it's entirely possible that there was an issue somewhere else in my stack (L0, L1 and L2 all had non-trivial KVM changes), and I haven't yet had time to dig in. That, and I suspect I'm the only person that would care about L3 functioning properly in this scenario :-)
linux-stable-mirror@lists.linaro.org