From: Gregory Haskins <ghaskins@novell.com>
To: Avi Kivity <avi@redhat.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>,
Davide Libenzi <davidel@xmailserver.org>,
viro@ZenIV.linux.org.uk, kvm@vger.kernel.org,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [KVM PATCH v4 2/2] kvm: add support for irqfd via eventfd-notification interface
Date: Thu, 07 May 2009 10:54:51 -0400 [thread overview]
Message-ID: <4A02F63B.60104@novell.com> (raw)
In-Reply-To: <4A02F160.7080907@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2675 bytes --]
Avi Kivity wrote:
> Gregory Haskins wrote:
>> One thing I was thinking here was that I could create a flag for the
>> kvm_irqfd() function for something like "KVM_IRQFD_MODE_CLEAR". This
>> flag when specified at creation time will cause the event to execute a
>> clear operation instead of a set when triggered. That way, the default
>> mode is an edge-triggered set. The non-default mode is to trigger a
>> clear. Level-triggered ints could therefore create two irqfds, one for
>> raising, the other for clearing.
>>
>
> That's my second choice option.
>
>> An alternative is to abandon the use of eventfd, and allow the irqfd to
>> be a first-class anon-fd. The parameters passed to the write/signal()
>> function could then indicate the desired level. The disadvantage would
>> be that it would not be compatible with eventfd, so we would need to
>> decide if the tradeoff is worth it.
>>
>
> I would really like to keep using eventfd. Which is why I asked
> Davide about the prospects of direct callbacks (vs wakeups).
I saw that request. That would be ideal.
>
>> OTOH, I suspect level triggered interrupts will be primarily in the
>> legacy domain, so perhaps we do not need to worry about it too much.
>> Therefore, another option is that we *could* simply set the stake in the
>> ground that legacy/level cannot use irqfd.
>>
>
> This is my preferred option. For a virtio-net-server in the kernel,
> we'd service its eventfd in qemu, raising and lowering the pci
> interrupt in the traditional way.
>
> But we'd still need to know when to lower the interrupt. How?
IIUC, isn't that usually device/subsystem specific, and out of scope of
the GSI delivery vehicle? For instance, most devices I have seen with
level ints have a register in their device register namespace for acking
the int. As an aside, this is what causes some of the grief in dealing
with shared interrupts like KVM pass-through and/or threaded-isrs:
There isn't a standardized way to ACK them.
You may also see some generalization of masking/acking in things like
the MSI-X table. But again, this would be out of scope of the general
GSI delivery path IIUC.
I understand that there is a feedback mechanism in the ioapic model for
calling back on acknowledgment of the interrupt. But I am not sure what
is how the real hardware works normally, and therefore I am not
convinced that is something we need to feed all the way back (i.e. via
irqfd or whatever). In the interest of full disclosure, its been a few
years since I studied the xAPIC docs, so I might be out to lunch on that
assertion. ;)
-Greg
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 266 bytes --]
next prev parent reply other threads:[~2009-05-07 14:55 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-04 17:57 [KVM PATCH v4 0/2] irqfd Gregory Haskins
2009-05-04 17:57 ` [KVM PATCH v4 1/2] eventfd: export eventfd interfaces for module use Gregory Haskins
2009-05-04 22:24 ` Al Viro
2009-05-05 2:17 ` Gregory Haskins
2009-05-04 17:57 ` [KVM PATCH v4 2/2] kvm: add support for irqfd via eventfd-notification interface Gregory Haskins
2009-05-05 15:45 ` Avi Kivity
2009-05-05 17:34 ` Gregory Haskins
2009-05-05 17:43 ` Avi Kivity
2009-05-05 17:56 ` Gregory Haskins
2009-05-05 18:10 ` Avi Kivity
2009-05-05 18:21 ` Gregory Haskins
2009-05-06 11:35 ` Gregory Haskins
2009-05-06 15:24 ` Davide Libenzi
2009-05-06 15:37 ` Gregory Haskins
2009-05-07 1:34 ` Davide Libenzi
2009-05-07 2:06 ` Gregory Haskins
2009-05-08 15:06 ` Davide Libenzi
2009-05-12 3:55 ` Gregory Haskins
2009-05-12 6:55 ` Davide Libenzi
2009-05-07 9:48 ` Avi Kivity
2009-05-07 13:46 ` Marcelo Tosatti
2009-05-07 14:01 ` Gregory Haskins
2009-05-07 14:34 ` Avi Kivity
2009-05-07 14:54 ` Gregory Haskins [this message]
2009-05-07 15:26 ` Avi Kivity
2009-05-07 14:46 ` Davide Libenzi
2009-05-07 15:47 ` Avi Kivity
2009-05-07 16:44 ` Davide Libenzi
2009-05-07 18:12 ` Avi Kivity
2009-05-08 3:13 ` Davide Libenzi
2009-05-08 8:19 ` Avi Kivity
2009-05-04 18:06 ` [KVM PATCH v4 0/2] irqfd Gregory Haskins
2009-05-04 18:52 ` Gregory Haskins
2009-05-05 14:16 ` Davide Libenzi
2009-05-05 14:27 ` Gregory Haskins
-- strict thread matches above, loose matches on Subject: below --
2009-05-04 17:55 Gregory Haskins
2009-05-04 17:56 ` [KVM PATCH v4 2/2] kvm: add support for irqfd via eventfd-notification interface Gregory Haskins
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=4A02F63B.60104@novell.com \
--to=ghaskins@novell.com \
--cc=avi@redhat.com \
--cc=davidel@xmailserver.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=viro@ZenIV.linux.org.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.