(+ Andre)
Hi Oleksandr,
On 21/07/2020 13:26, Oleksandr wrote:
On 20.07.20 23:38, Stefano Stabellini wrote:
For instance, what's your take on notifications with virtio-mmio? How
are they modelled today? Are they good enough or do we need MSIs?
Notifications are sent from device (backend) to the driver (frontend)
using interrupts. Additional DM function was introduced for that purpose
xendevicemodel_set_irq_level() which results in vgic_inject_irq() call.
Currently, if device wants to notify a driver it should trigger the
interrupt by calling that function twice (high level at first, then low
level).
This doesn't look right to me. Assuming the interrupt is trigger when
the line is high-level, the backend should only issue the hypercall once
to set the level to high. Once the guest has finish to process all the
notifications the backend would then call the hypercall to lower the
interrupt line.
This means the interrupts should keep firing as long as the interrupt
line is high.
It is quite possible that I took some shortcut when implementing the
hypercall, so this should be corrected before anyone start to rely on it.
Cheers,
--
Julien Grall