All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxim Levitsky <mlevitsk@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
	linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Cc: seanjc@google.com, stable@vger.kernel.org
Subject: Re: [PATCH 3/3] KVM: x86: never write to memory from kvm_vcpu_check_block
Date: Wed, 27 Apr 2022 23:42:51 +0300	[thread overview]
Message-ID: <6ad7ecdd82cd85adff008e5ae967516f00c3bf73.camel@redhat.com> (raw)
In-Reply-To: <20220427173758.517087-4-pbonzini@redhat.com>

On Wed, 2022-04-27 at 13:37 -0400, Paolo Bonzini wrote:
> kvm_vcpu_check_block is called while not in TASK_RUNNING, and therefore
> cannot sleep.  Writing to guest memory is therefore forbidden, but it
> can happen if kvm_check_nested_events causes a vmexit.
> 
> Fortunately, all events that are caught by kvm_check_nested_events are
> also handled by kvm_vcpu_has_events through vendor callbacks such as
> kvm_x86_interrupt_allowed or kvm_x86_ops.nested_ops->has_events, so
> remove the call.
> 
> Cc: stable@vger.kernel.org
> Reported-by: Maxim Levitsky <mlevitsk@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  arch/x86/kvm/x86.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index d563812ca229..90b4f50b9a84 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -10341,9 +10341,6 @@ static inline int vcpu_block(struct kvm_vcpu *vcpu)
>  
>  static inline bool kvm_vcpu_running(struct kvm_vcpu *vcpu)
>  {
> -	if (is_guest_mode(vcpu))
> -		kvm_check_nested_events(vcpu);
> -
>  	return (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE &&
>  		!vcpu->arch.apf.halted);
>  }

Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>

I tested this on AMD, and it seems to work fine, and my nested AVIC test
works as good as was before.

Note that I forgot to mention, that I had to apply most of the patches
manually, they don't apply to kvm/queue.

Best regards,
	Maxim Levitsky


  reply	other threads:[~2022-04-27 20:43 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-27 17:37 [PATCH 0/2] KVM: x86: never write to memory from kvm_vcpu_check_block Paolo Bonzini
2022-04-27 17:37 ` [PATCH 1/3] KVM: x86: make vendor code check for all nested events Paolo Bonzini
2022-04-27 20:40   ` Maxim Levitsky
2022-04-29 18:40     ` Paolo Bonzini
2022-04-29 17:03   ` Sean Christopherson
2022-04-29 17:09     ` Paolo Bonzini
2022-04-29 17:35       ` Sean Christopherson
2022-04-27 17:37 ` [PATCH 2/3] KVM: x86: a vCPU with a pending triple fault is runnable Paolo Bonzini
2022-04-27 20:41   ` Maxim Levitsky
2022-04-27 17:37 ` [PATCH 3/3] KVM: x86: never write to memory from kvm_vcpu_check_block Paolo Bonzini
2022-04-27 20:42   ` Maxim Levitsky [this message]
2022-07-20  9:31 ` [PATCH 0/2] " Maxim Levitsky

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=6ad7ecdd82cd85adff008e5ae967516f00c3bf73.camel@redhat.com \
    --to=mlevitsk@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=stable@vger.kernel.org \
    /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.