From: "Michael S. Tsirkin" <mst@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>,
Alex Williamson <alex.williamson@redhat.com>,
"mtosatti@redhat.com" <mtosatti@redhat.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [RFC PATCH] kvm: Extend irqfd to support level interrupts
Date: Mon, 18 Jun 2012 13:11:56 +0300 [thread overview]
Message-ID: <20120618101156.GB23134@redhat.com> (raw)
In-Reply-To: <4FDEF5CD.8090806@redhat.com>
On Mon, Jun 18, 2012 at 12:33:01PM +0300, Avi Kivity wrote:
> On 06/18/2012 11:52 AM, Jan Kiszka wrote:
> >>
> >> I don't understand how this works. A level IRQ isn't de-asserted by the
> >> EOI, it's de-asserted by its source.
> >>
> >> Consider the following sequence:
> >>
> >> device guest
> >>
> >> event
> >> assert
> >> interrupt
> >> interrupt handler
> >> handle event
> >> clear ISR bit
> >> deassert
> >> event
> >> assert
> >> EOI
> >>
> >> What should happen is that the interrupt will be redelivered
> >> immmediately after the EOI, but that won't happen with your API since
> >> the EOI ack notifier will deassert the interrupt and nothing will
> >> re-assert it.
> >
> > As it's level triggered and we unmask the physical source, another
> > host-side interrupt will be triggered and then reported to the guest.
>
> That works for real devices. What about emulated devices
It's broken for userspace too. I guess it
should track the logical state of the device per source id. On ack, it
should clear it for assigned devices only, do the
logical OR over all source IDs and set level to that.
> (vhost,
> msi-less ivshmem clone)?
I guess vhost can poll eventfd and reinject an interrupt.
Of course to bypass qemu completely we also need to support reads over
ioeventfd somehow.
> --
> error compiling committee.c: too many arguments to function
>
next prev parent reply other threads:[~2012-06-18 10:12 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-16 16:34 [RFC PATCH] kvm: Extend irqfd to support level interrupts Alex Williamson
2012-06-17 11:17 ` Jan Kiszka
2012-06-17 18:44 ` Michael S. Tsirkin
2012-06-17 21:38 ` Alex Williamson
2012-06-17 22:15 ` Alex Williamson
2012-06-18 6:00 ` Michael S. Tsirkin
2012-06-18 14:00 ` Alex Williamson
2012-06-18 5:51 ` Michael S. Tsirkin
2012-06-18 14:06 ` Alex Williamson
2012-06-18 8:02 ` Avi Kivity
2012-06-18 8:52 ` Jan Kiszka
2012-06-18 9:33 ` Avi Kivity
2012-06-18 10:11 ` Michael S. Tsirkin [this message]
2012-06-18 10:14 ` Avi Kivity
2012-06-18 10:55 ` Michael S. Tsirkin
2012-06-18 11:03 ` Avi Kivity
2012-06-18 11:17 ` Michael S. Tsirkin
2012-06-18 14:32 ` Alex Williamson
2012-06-18 14:27 ` Alex Williamson
2012-06-18 14:33 ` Avi Kivity
2012-06-18 16:47 ` Alex Williamson
2012-06-18 14:23 ` Alex Williamson
2012-06-18 14:18 ` Alex Williamson
2012-06-18 14:35 ` 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=20120618101156.GB23134@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;
as well as URLs for NNTP newsgroup(s).