Re: [PATCH 1/2] KVM: x86: Plumb in the vCPU to kvm_x86_ops.hwapic_isr_update()

Sean Christopherson
2024-11-05T04:02:23Z

On Fri, Nov 01, 2024, Sean Christopherson wrote:
> Pass the target vCPU to the hwapic_isr_update() vendor hook so that VMX
> can defer the update until after nested VM-Exit if an EOI for L1's vAPIC
> occurs while L2 is active.
>
> No functional change intended.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
> arch/x86/include/asm/kvm_host.h | 2 +-
> arch/x86/kvm/lapic.c | 11 +++++------
> arch/x86/kvm/vmx/vmx.c | 2 +-
> arch/x86/kvm/vmx/x86_ops.h | 2 +-
> 4 files changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
> index 70c7ed0ef184..3f3de047cbfd 100644
> --- a/arch/x86/include/asm/kvm_host.h
> +++ b/arch/x86/include/asm/kvm_host.h
> @@ -1734,7 +1734,7 @@ struct kvm_x86_ops {
> bool allow_apicv_in_x2apic_without_x2apic_virtualization;
> void (*refresh_apicv_exec_ctrl)(struct kvm_vcpu *vcpu);
> void (*hwapic_irr_update)(struct kvm_vcpu *vcpu, int max_irr);
> - void (*hwapic_isr_update)(int isr);
> + void (*hwapic_isr_update)(struct kvm_vcpu *vcpu, int isr);

Oh, the hilarity. Got that one wrong.

d39850f57d21 ("KVM: x86: Drop @vcpu parameter from kvm_x86_ops.hwapic_isr_update()")

Not entirely sure what cleanups were made possible by dropping @vcpu at the time.
I assume the end goal was ce0a58f4756c ("KVM: x86: Move "apicv_active" into "struct
kvm_lapic""), but that should have been possible, if slightly more annoying, without
modifying hwapic_isr_update(). *sigh*