From: "Michael S. Tsirkin" <mst@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: Alex Williamson <alex.williamson@redhat.com>,
Jan Kiszka <jan.kiszka@siemens.com>,
Marcelo Tosatti <mtosatti@redhat.com>, kvm <kvm@vger.kernel.org>
Subject: Re: [PATCH v4 3/9] KVM: Clear assigned guest IRQ on release
Date: Fri, 26 Nov 2010 12:36:29 +0200 [thread overview]
Message-ID: <20101126103629.GA3677@redhat.com> (raw)
In-Reply-To: <4CDA416F.3060905@redhat.com>
On Wed, Nov 10, 2010 at 08:53:35AM +0200, Avi Kivity wrote:
> On 11/09/2010 08:36 PM, Alex Williamson wrote:
> >>
> >> Note: all this kvm_set_irq(..., [01]) is incorrect as it doesn't account
> >> for polarity. Currently the qemu-emulated chipset uses level high pci
> >> interrupts, but that's not a given from kvm's point of view.
> >>
> >> I think vfio fixes this by only routing msi interrupts via the kernel,
> >> and routing level interrupts through userspace, which can adjust
> >> polarity. Alex/Michael?
> >
> >The latest patches will route legacy interrupts via irqfd if available
> >too. We do have the issue that KVM pulses interrupts injected this way,
> >but it seems to work nonetheless.
>
> That doesn't sound too good.
It's more than luck that it works: there is a backend
device that keeps the interrupt asserted, if driver did not
handle the interrupt but the OS did ack it, we will unmask
the interrupt, get another one from the device
(or just notice status bit is set) and send another pulse.
Whether all this improves or hurts performance, or whether
some guest might notice the difference, I don't know.
So maybe pulsing the interrupt is actually a good thing?
Anyone has any theories?
What I think is broken, is
1. interrupt sharing, as irqfds use the userspace id instead of
a per-device id.
2. emulated devices as there's no one to reassert the interrupt.
> >I was thinking about proposing a
> >level flag for set_irqfd to only set it, allowing the ack notifier to
> >deassert it. Perhaps we also need a flag to toggle the polarity.
>
> Or maybe irqfd is not up to this task.
>
> I'd rather stick with the ordinary ioctls for this until proven
> they're too slow. By proven, I mean a userspace irq forwarding
> implementation that doesn't suck like we it does now (can be just a
> prototype).
>
> --
> I have a truly marvellous patch that fixes the bug which this
> signature is too narrow to contain.
>
> --
> 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:[~2010-11-26 10:36 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-08 11:21 [PATCH v4 0/9] KVM: Improve IRQ assignment for device passthrough Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 1/9] KVM: Fix srcu struct leakage Jan Kiszka
2010-11-08 17:00 ` Michael S. Tsirkin
2010-11-08 17:32 ` Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 2/9] KVM: Switch IRQ subsystem to SRCU Jan Kiszka
2010-11-09 10:49 ` Avi Kivity
2010-11-09 11:21 ` Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 3/9] KVM: Clear assigned guest IRQ on release Jan Kiszka
2010-11-09 10:58 ` Avi Kivity
2010-11-09 11:20 ` Jan Kiszka
2010-11-09 18:36 ` Alex Williamson
2010-11-10 6:53 ` Avi Kivity
2010-11-26 10:36 ` Michael S. Tsirkin [this message]
2010-11-08 11:21 ` [PATCH v4 4/9] KVM: Switch assigned device IRQ forwarding to threaded handler Jan Kiszka
2010-11-09 12:26 ` Avi Kivity
2010-11-09 12:36 ` Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 5/9] KVM: Refactor IRQ names of assigned devices Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 6/9] KVM: Save/restore state of assigned PCI device Jan Kiszka
2010-11-09 12:35 ` Avi Kivity
2010-11-09 13:29 ` Jan Kiszka
2010-11-09 13:36 ` Avi Kivity
2010-11-09 13:44 ` Jan Kiszka
2010-11-09 13:46 ` Avi Kivity
2010-11-09 16:41 ` Don Dutile
2010-11-08 11:21 ` [PATCH v4 7/9] KVM: Clean up kvm_vm_ioctl_assigned_device Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 8/9] KVM: Document device assigment API Jan Kiszka
2010-11-08 11:21 ` [PATCH v4 9/9] KVM: Allow host IRQ sharing for passed-through PCI 2.3 devices Jan Kiszka
2010-11-09 13:27 ` Avi Kivity
2010-11-09 13:35 ` Jan Kiszka
2010-11-09 13:41 ` Avi Kivity
2010-11-09 14:11 ` Jan Kiszka
2010-11-09 14:20 ` Avi Kivity
2010-11-16 16:55 ` [PATCH v4 0/9] KVM: Improve IRQ assignment for device passthrough Marcelo Tosatti
2010-11-16 18:26 ` Jan Kiszka
2010-11-17 8:25 ` 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=20101126103629.GA3677@redhat.com \
--to=mst@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=avi@redhat.com \
--cc=jan.kiszka@siemens.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