From: Alex Williamson <alex.williamson@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: avi@redhat.com, gleb@redhat.com, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org, jan.kiszka@siemens.com
Subject: Re: [PATCH v7 2/2] kvm: KVM_EOIFD, an eventfd for EOIs
Date: Wed, 01 Aug 2012 13:06:42 -0600 [thread overview]
Message-ID: <1343848002.6698.38.camel@bling.home> (raw)
In-Reply-To: <1343697135.8073.245.camel@ul30vt>
On Mon, 2012-07-30 at 19:12 -0600, Alex Williamson wrote:
> On Tue, 2012-07-31 at 03:36 +0300, Michael S. Tsirkin wrote:
> > On Mon, Jul 30, 2012 at 06:26:31PM -0600, Alex Williamson wrote:
> > > On Tue, 2012-07-31 at 03:01 +0300, Michael S. Tsirkin wrote:
> > > > You keep saying this but it is still true: once irqfd
> > > > is closed eoifd does not get any more interrupts.
> > >
> > > How does that matter?
> >
> > Well if it does not get events it is disabled.
> > so you have one ifc disabling another, anyway.
>
> And a level irqfd without an eoifd can never be de-asserted. Either we
> make modular components, assemble them to do useful work, and
> disassemble them independently so they can be used by future interfaces
> or we bundle eoifd as just an option of irqfd. Which is it gonna be?
I don't think I've been successful at explaining my reasoning for making
EOI notification a separate interface, so let me try again...
When kvm is not enabled, the qemu vfio driver still needs to know about
EOIs to re-enable the physical interrupt. Since the ioapic is emulated
in qemu, we can setup a notifier for this and create abstraction to make
it non-x86 specific, etc. We just need to come up with a design and
implement it. But what happens when kvm is then enabled? ioapic
emulation moves to the kernel (assume kvm includes irqchip for this
argument even though it doesn't for POWER), qemu no longer knows about
EOIs, and the interface we just created to handle the non-kvm case stops
working. Is anyone going to accept adding a qemu EOI notification
interface that only works when kvm is not enabled?
I suspect we therefore need a notification mechanism between kvm and
qemu to make it possible for that interface to continue working. An
eventfd also seems like the right mechanism there. A simple
modification to the proposed KVM_EOIFD here would allow it to trigger an
eventfd when an EOI is written to a specific gsi on
KVM_USERSPACE_IRQ_SOURCE_ID (define a flag and pass gsi in place of
key).
The split proposed here does require some assembly, but KVM_EOIFD is
re-usable as either a de-assert and notify mechanism tied to an irqfd or
a notify-only mechanism allowing users of a qemu EOI notification
infrastructure to continue working. vfio doesn't necessarily need this
middle ground, but can easily be used to test it.
The alternative is that we pull eoifd into KVM_IRQFD and invent some
other new EOI interface for qemu. That means we get EOIs tied to an
irqfd via one path and other EOIs via another ioctl. Personally that
seems less desirable, but I'm willing to explore that route if
necessary. Thanks,
Alex
next prev parent reply other threads:[~2012-08-01 19:06 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-24 20:43 [PATCH v7 0/2] kvm: level irqfd and new eoifd Alex Williamson
2012-07-24 20:43 ` [PATCH v7 1/2] kvm: Extend irqfd to support level interrupts Alex Williamson
2012-07-29 15:01 ` Michael S. Tsirkin
2012-07-30 16:06 ` Alex Williamson
2012-07-24 20:43 ` [PATCH v7 2/2] kvm: KVM_EOIFD, an eventfd for EOIs Alex Williamson
2012-07-29 14:54 ` Michael S. Tsirkin
2012-07-30 16:22 ` Alex Williamson
2012-07-31 0:01 ` Michael S. Tsirkin
2012-07-31 0:26 ` Alex Williamson
2012-07-31 0:36 ` Michael S. Tsirkin
2012-07-31 1:12 ` Alex Williamson
2012-08-01 19:06 ` Alex Williamson [this message]
2012-08-12 7:49 ` Michael S. Tsirkin
2012-08-13 16:48 ` Alex Williamson
2012-08-13 16:59 ` Michael S. Tsirkin
2012-08-13 18:17 ` Alex Williamson
2012-08-13 19:50 ` Michael S. Tsirkin
2012-08-13 20:48 ` Alex Williamson
2012-08-13 21:50 ` Michael S. Tsirkin
2012-08-13 22:22 ` Alex Williamson
2012-08-13 22:52 ` Michael S. Tsirkin
2012-08-14 10:10 ` Gleb Natapov
2012-08-14 10:13 ` Gleb Natapov
2012-08-02 8:42 ` Michael S. Tsirkin
2012-08-06 10:17 ` Avi Kivity
2012-08-06 10:38 ` Avi Kivity
2012-08-06 10:40 ` Avi Kivity
2012-08-09 19:26 ` Alex Williamson
2012-08-12 8:36 ` Avi Kivity
2012-08-13 21:34 ` Alex Williamson
2012-08-13 22:06 ` Michael S. Tsirkin
2012-08-13 22:41 ` Alex Williamson
2012-08-13 23:00 ` Michael S. Tsirkin
2012-08-14 3:09 ` Alex Williamson
2012-08-14 8:35 ` Michael S. Tsirkin
2012-08-14 21:28 ` Alex Williamson
2012-08-12 9:33 ` Michael S. Tsirkin
2012-08-13 21:23 ` Alex Williamson
2012-08-13 22:00 ` Michael S. Tsirkin
2012-08-14 12:35 ` Avi Kivity
2012-08-14 14:50 ` Michael S. Tsirkin
2012-08-14 22:01 ` Alex Williamson
2012-08-14 23:04 ` Michael S. Tsirkin
2012-08-14 23:26 ` Alex Williamson
2012-08-15 13:09 ` Avi Kivity
2012-08-12 7:53 ` Michael S. Tsirkin
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=1343848002.6698.38.camel@bling.home \
--to=alex.williamson@redhat.com \
--cc=avi@redhat.com \
--cc=gleb@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@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).