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

Avi Kivity
2010-03-11T06:50:48Z

On 03/10/2010 04:04 PM, Arnd Bergmann wrote:
> On Tuesday 09 March 2010, Cam Macdonell wrote:
>
>>> We could make the masking in RAM, not in registers, like virtio, which would
>>> require no exits. It would then be part of the application specific
>>> protocol and out of scope of of this spec.
>>>
>>>
>> This kind of implementation would be possible now since with UIO it's
>> up to the application whether to mask interrupts or not and what
>> interrupts mean. We could leave the interrupt mask register for those
>> who want that behaviour. Arnd's idea would remove the need for the
>> Doorbell and Mask, but we will always need at least one MMIO register
>> to send whatever interrupts we do send.
>>
> You'd also have to be very careful if the notification is in RAM to
> avoid races between one guest triggering an interrupt and another
> guest clearing its interrupt mask.
>
> A totally different option that avoids this whole problem would
> be to separate the signalling from the shared memory, making the
> PCI shared memory device a trivial device with a single memory BAR,
> and using something a higher-level concept like a virtio based
> serial line for the actual signalling.
>

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.

--
error compiling committee.c: too many arguments to function