Re: [PATCH] Inter-VM shared memory PCI device

Arnd Bergmann
2010-03-11T14:32:58Z

On Thursday 11 March 2010, Avi Kivity wrote:
> >> That would be much slower. The current scheme allows for an
> >> ioeventfd/irqfd short circuit which allows one guest to interrupt
> >> another without involving their qemus at all.
> >>
> > Yes, the serial line approach would be much slower, but my point
> > was that we can do signaling over "something else", which could
> > well be something building on irqfd.
>
> Well, we could, but it seems to make things more complicated? A card
> with shared memory, and another card with an interrupt interconnect?

Yes, I agree that it's more complicated if you have a specific application
in mind that needs one of each, and most use cases that want shared memory
also need an interrupt mechanism, but it's not always the case:

- You could use ext2 with -o xip on a private mapping of a shared host file
in order to share the page cache. This does not need any interrupts.

- If you have more than two parties sharing the segment, there are different
ways to communicate, e.g. always send an interrupt to all others, or have
dedicated point-to-point connections. There is also some complexity in
trying to cover all possible cases in one driver.

I have to say that I also really like the idea of futex over shared memory,
which could potentially make this all a lot simpler. I don't know how this
would best be implemented on the host though.

Arnd