From: Avi Kivity <avi@redhat.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: kvm@vger.kernel.org, Gleb Natapov <gleb@redhat.com>
Subject: Re: [PATCH v4 0/6] Nonatomic interrupt injection
Date: Sun, 19 Sep 2010 11:25:40 +0200 [thread overview]
Message-ID: <4C95D714.9080408@redhat.com> (raw)
In-Reply-To: <20100917191254.GA22281@amt.cnet>
On 09/17/2010 09:12 PM, Marcelo Tosatti wrote:
> > This is now merged, with the change pointed out by Marcelo. Windows
> > XP x64 fails installation without
> >
> > (vmx.c handle_cr())
> > case 8: {
> > u8 cr8_prev = kvm_get_cr8(vcpu);
> > u8 cr8 = kvm_register_read(vcpu, reg);
> > kvm_set_cr8(vcpu, cr8);
> > skip_emulated_instruction(vcpu);
> > if (irqchip_in_kernel(vcpu->kvm))
> > return 1;
> > - if (cr8_prev<= cr8)
> > - return 1;
> > vcpu->run->exit_reason = KVM_EXIT_SET_TPR;
> > return 0;
> > }
> >
> > Which doesn't make any sense (anyone?). The failure is present even
> > without the patchset, and is fixed by the same hack, so a regression
> > was not introduced.
>
> If userspace does not have an uptodate TPR value, it can signal an
> interrupt that is now blocked? Say:
>
> - cr8 write 0
> - cr8 write 5
> - no exit to userspace
> - userspace signals interrupt with priority
> 4 because it knows about tpr == 0.
>
To signal an interrupt, userspace needs to force an exit. The exit will
sync cr8.
However, it may be that the decision to inject the interrupt is taken
before the exit, so the interrupt is injected even though it shouldn't be.
Let's assume that this is so (I'll check). Is this a bug in the kernel
or userspace?
My feeling is that this is a kernel bug, and the optimization should be
removed.
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2010-09-19 9:25 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-30 11:36 [PATCH v4 0/6] Nonatomic interrupt injection Avi Kivity
2010-08-30 11:36 ` [PATCH v4 1/6] KVM: Check for pending events before attempting injection Avi Kivity
2010-08-30 17:41 ` Marcelo Tosatti
2010-08-30 11:36 ` [PATCH v4 2/6] KVM: VMX: Split up vmx_complete_interrupts() Avi Kivity
2010-08-30 11:36 ` [PATCH v4 3/6] KVM: VMX: Move real-mode interrupt injection fixup to vmx_complete_interrupts() Avi Kivity
2010-08-30 11:37 ` [PATCH v4 4/6] KVM: VMX: Parameterize vmx_complete_interrupts() for both exit and entry Avi Kivity
2010-08-30 11:37 ` [PATCH v4 5/6] KVM: Non-atomic interrupt injection Avi Kivity
2010-08-30 11:37 ` [PATCH v4 6/6] KVM: VMX: Move fixup_rmode_irq() to avoid forward declaration Avi Kivity
2010-08-30 11:52 ` [PATCH v4 0/6] Nonatomic interrupt injection Avi Kivity
2010-09-16 13:35 ` Avi Kivity
2010-09-17 19:12 ` Marcelo Tosatti
2010-09-19 9:25 ` Avi Kivity [this message]
2010-09-19 9:28 ` Avi Kivity
2010-09-19 10:09 ` Avi Kivity
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=4C95D714.9080408@redhat.com \
--to=avi@redhat.com \
--cc=gleb@redhat.com \
--cc=kvm@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).