Re: [KVM PATCH v3 0/2] irqfd

From: Avi Kivity
Date: Wed Apr 29 2009 - 04:19:51 EST


Andrew Morton wrote:
On Mon, 27 Apr 2009 14:33:24 -0400 Gregory Haskins <ghaskins@xxxxxxxxxx> wrote:

(Applies to kvm.git 41b76d8d0487c26d6d4d3fe53c1ff59b3236f096)

This series implements a mechanism called "irqfd". It lets you create
an eventfd based file-desriptor to inject interrupts to a kvm guest. We
associate one gsi per fd for fine-grained routing.

It'd be nice if the KVM weenies amongst us were to be told why one
would want to inject interrupts into a KVM guest. Monosyllabic words
would be preferred ;)

Interrupts are injected (better word, raised) into a guest because real hardware has interrupts. This patchset does not add the ability to raise interrupts (that existed from day 1); it adds an eventfd interface to do so.

An eventfd interface is useful, because it allows components to talk to kvm guests without being tied to kvm internals; they signal an eventfd; if the eventfd is terminated in kvm, it injects an interrupt. If the eventfd is terminated in userspace, it returns from epoll().

We do not have a user of this interface in this series, though note
future version of virtual-bus (v4 and above) will be based on this.

So I assume that this patchset will be merged if/when a user of it is
merged?

This interface is applicable to both the kernel and userspace; userspace users won't be merged.

But I certainly want to see how the whole thing works.

The first patch will require mainline buy-in, particularly from Davide
(cc'd). The last patch is kvm specific.

Three EXPORT_SYMBOL_GPL()s. Once the shouting has subsided I'd suggest
that this be merged via the KVM tree.

I think eventfd makes tons of sense as a generic 'wake me up' mechanism that can be used from both sides of the kernel/user line.

--
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 linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/