kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Joerg Roedel <joerg.roedel@amd.com>
To: Avi Kivity <avi@redhat.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>,
	Alexander Graf <agraf@suse.de>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/9] KVM: SVM: Notify nested hypervisor of lost event injections
Date: Thu, 8 Oct 2009 18:32:34 +0200	[thread overview]
Message-ID: <20091008163234.GJ14073@amd.com> (raw)
In-Reply-To: <4ACE127A.6040304@redhat.com>

On Thu, Oct 08, 2009 at 06:25:30PM +0200, Avi Kivity wrote:
> On 10/08/2009 06:22 PM, Joerg Roedel wrote:
> >On Thu, Oct 08, 2009 at 06:12:28PM +0200, Avi Kivity wrote:
> >>On 10/08/2009 12:03 PM, Joerg Roedel wrote:
> >>>From: Alexander Graf<agraf@suse.de>
> >>>
> >>>If event_inj is valid on a #vmexit the host CPU would write
> >>>the contents to exit_int_info, so the hypervisor knows that
> >>>the event wasn't injected.
> >>>
> >>>We don't do this in nested SVM by now which is a bug and
> >>>fixed by this patch.
> >>We need to start thinking about regression tests for these bugs.  It
> >>would be relatively easy to set up something with save->cr3 == cr3
> >>(i.e. no isolation, mmu virtualization, etc.).
> >Should be doable with a in-kernel regression test-suite module, I think.
> >Triggering such (race-condition like) test cases from userspace is
> >somewhat hard.
> >
> 
> Isn't it sufficient, for this case, to inject a nested interrupt
> when the nested idt is not mapped?

No. The L1 guest needs to execute VMRUN with an interrupt to inject to
the L2 guest with event_inj. On that VMRUN instruction emulation an
interrupt becomes pending which causes an immediate #vmexit from L2 to
L2 again without even entering the L2 guest. The bug was that in this
case the event which the L1 tried to inject in the L2 was lost because
it was not copied to exit_int_info.

	Joerg

  reply	other threads:[~2009-10-08 16:32 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-08 10:03 [PATCH 0/9 v2] KVM: Nested SVM fixes and tracepoint conversion Joerg Roedel
2009-10-08 10:03 ` [PATCH 1/9] KVM: SVM: Notify nested hypervisor of lost event injections Joerg Roedel
2009-10-08 16:12   ` Avi Kivity
2009-10-08 16:22     ` Joerg Roedel
2009-10-08 16:25       ` Avi Kivity
2009-10-08 16:32         ` Joerg Roedel [this message]
2009-10-08 16:38           ` Avi Kivity
2009-10-08 16:46             ` Alexander Graf
2009-10-12  9:34               ` Avi Kivity
2009-10-08 10:03 ` [PATCH 2/9] KVM: SVM: Move INTR vmexit out of atomic code Joerg Roedel
2009-10-08 10:03 ` [PATCH 3/9] KVM: SVM: Add tracepoint for nested vmrun Joerg Roedel
2009-10-08 15:58   ` Avi Kivity
2009-10-08 16:15     ` Joerg Roedel
2009-10-08 16:20       ` Avi Kivity
2009-10-08 10:03 ` [PATCH 4/9] KVM: SVM: Add tracepoint for nested #vmexit Joerg Roedel
2009-10-08 10:03 ` [PATCH 5/9] KVM: SVM: Add tracepoint for injected #vmexit Joerg Roedel
2009-10-08 10:03 ` [PATCH 6/9] KVM: SVM: Add tracepoint for #vmexit because intr pending Joerg Roedel
2009-10-08 10:03 ` [PATCH 7/9] KVM: SVM: Add tracepoint for invlpga instruction Joerg Roedel
2009-10-08 16:01   ` Avi Kivity
2009-10-08 16:18     ` Joerg Roedel
2009-10-08 16:21       ` Avi Kivity
2009-10-08 16:23         ` Joerg Roedel
2009-10-08 10:03 ` [PATCH 8/9] KVM: SVM: Add tracepoint for skinit instruction Joerg Roedel
2009-10-08 10:03 ` [PATCH 9/9] KVM: SVM: Remove nsvm_printk debugging code Joerg Roedel
  -- strict thread matches above, loose matches on Subject: below --
2009-10-09 14:08 [PATCH 0/9 v3] KVM: Nested SVM fixes and tracepoint conversion Joerg Roedel
2009-10-09 14:08 ` [PATCH 1/9] KVM: SVM: Notify nested hypervisor of lost event injections Joerg Roedel

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=20091008163234.GJ14073@amd.com \
    --to=joerg.roedel@amd.com \
    --cc=agraf@suse.de \
    --cc=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).