From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH 2/6] kvm: nVMX: move nested events check to kvm_vcpu_running
Date: Tue, 7 Feb 2017 19:16:00 +0100 [thread overview]
Message-ID: <20170207181559.GB31091@potion> (raw)
In-Reply-To: <1482164232-130035-3-git-send-email-pbonzini@redhat.com>
2016-12-19 17:17+0100, Paolo Bonzini:
> vcpu_run calls kvm_vcpu_running, not kvm_arch_vcpu_runnable,
> and the former does not call check_nested_events.
>
> Once KVM_REQ_EVENT is removed from the APICv interrupt injection
> path, however, this would leave no place to trigger a vmexit
> from L2 to L1, causing a missed interrupt delivery while in guest
> mode. This is caught by the "ack interrupt on exit" test in
> vmx.flat.
>
> [This does not change the calls to check_nested_events in
> inject_pending_event. That is material for a separate cleanup.]
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
I think we should now remove the call to check_nested_events() from
inject_pending_event() and we could also call it in vcpu_enter_guest()
directly.
Still,
Reviewed-by: Radim Krčmář <rkrcmar@redhat.com
> arch/x86/kvm/x86.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index d5a5fc2f8758..32e5f54a8eba 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -6920,6 +6920,9 @@ static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu)
>
> static inline bool kvm_vcpu_running(struct kvm_vcpu *vcpu)
> {
> + if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events)
> + kvm_x86_ops->check_nested_events(vcpu, false);
> +
> return (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE &&
> !vcpu->arch.apf.halted);
> }
> @@ -8286,9 +8289,6 @@ static inline bool kvm_vcpu_has_events(struct kvm_vcpu *vcpu)
>
> int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
> {
> - if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events)
> - kvm_x86_ops->check_nested_events(vcpu, false);
> -
> return kvm_vcpu_running(vcpu) || kvm_vcpu_has_events(vcpu);
> }
>
> --
> 1.8.3.1
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-02-07 18:16 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-19 16:17 [PATCH v2 0/6] KVM: x86: cleanup and speedup for APICv Paolo Bonzini
2016-12-19 16:17 ` [PATCH 1/6] KVM: vmx: clear pending interrupts on KVM_SET_LAPIC Paolo Bonzini
2017-02-07 17:42 ` Radim Krčmář
2016-12-19 16:17 ` [PATCH 2/6] kvm: nVMX: move nested events check to kvm_vcpu_running Paolo Bonzini
2017-02-07 18:16 ` Radim Krčmář [this message]
2016-12-19 16:17 ` [PATCH 3/6] KVM: x86: preparatory changes for APICv cleanups Paolo Bonzini
2017-02-07 18:20 ` Radim Krčmář
2016-12-19 16:17 ` [PATCH 4/6] KVM: vmx: move sync_pir_to_irr from apic_find_highest_irr to callers Paolo Bonzini
2016-12-19 16:17 ` [PATCH 5/6] KVM: x86: do not scan IRR twice on APICv vmentry Paolo Bonzini
2017-02-07 20:19 ` Radim Krčmář
2017-02-07 21:49 ` Radim Krčmář
2017-02-08 14:10 ` Paolo Bonzini
2017-02-08 14:24 ` Radim Krčmář
2016-12-19 16:17 ` [PATCH 6/6] kvm: x86: do not use KVM_REQ_EVENT for APICv interrupt injection Paolo Bonzini
2017-02-07 19:58 ` Radim Krčmář
2017-02-08 16:23 ` Paolo Bonzini
2017-02-09 15:11 ` Radim Krčmář
2017-03-09 1:23 ` Wanpeng Li
2017-03-09 9:40 ` Wanpeng Li
2017-03-09 10:03 ` Paolo Bonzini
2017-02-07 17:23 ` [PATCH v2 0/6] KVM: x86: cleanup and speedup for APICv Paolo Bonzini
2017-02-07 21:52 ` Radim Krčmář
2017-02-08 10:04 ` Paolo Bonzini
2017-02-08 13:33 ` Radim Krčmář
2017-02-08 15:01 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170207181559.GB31091@potion \
--to=rkrcmar@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.