Re: [GIT PULL] AlacrityVM guest drivers for 2.6.33

Davide Libenzi
2009-12-23T01:05:15Z

On Tue, 22 Dec 2009, Gregory Haskins wrote:

> On 12/22/09 2:39 PM, Davide Libenzi wrote:
> > On Tue, 22 Dec 2009, Gregory Haskins wrote:
> >
> >> On 12/22/09 1:53 PM, Avi Kivity wrote:
> >>> I asked why the irqfd/ioeventfd mechanisms are insufficient, and you did not reply.
> >>>
> >>
> >> BTW: the ioeventfd issue just fell through the cracks, so sorry about
> >> that. Note that I have no specific issue with irqfd ever since the
> >> lockless IRQ injection code was added.
> >>
> >> ioeventfd turned out to be suboptimal for me in the fast path for two
> >> reasons:
> >>
> >> 1) the underlying eventfd is called in atomic context. I had posted
> >> patches to Davide to address that limitation, but I believe he rejected
> >> them on the grounds that they are only relevant to KVM.
> >
> > I thought we addressed this already, in the few hundreds of email we
> > exchanged back then :)
>
> We addressed the race conditions, but not the atomic callbacks. I can't
> remember exactly what you said, but the effect was "no", so I dropped it. ;)
>
> This was the thread.
>
> http://www.archivum.info/linux-kernel@vger.kernel.org/2009-06/08548/Re:_[KVM-RFC_PATCH_1_2]_eventfd:_add_an_explicit_srcu_based_notifier_interface

Didn't that ended up in schedule_work() being just fine, and no need was
there for pre-emptible callbacks?

> >> 2) it cannot retain the data field passed in the PIO. I wanted to have
> >> one vector that could tell me what value was written, and this cannot be
> >> expressed in ioeventfd.
> >
> > Like might have hinted in his reply, couldn't you add data support to the
> > ioeventfd bits in KVM, instead of leaking them into mainline eventfd?
> >
>
> Perhaps, or even easier I could extend xinterface. Which is what I did ;)
>
> The problem with the first proposal is that you would no longer actually
> have an eventfd based mechanism...so any code using ioeventfd (like
> Michael Tsirkin's for instance) would break.

At that point, the KVM eventfd can take care of thing so that Michael bits
do not break.

- Davide