Il 18/09/2013 15:19, Peter Maydell ha scritto:
> > There's nothing magic, really.  Both PV and real devices have been doing
> > it forever by placing some registers in RAM instead of MMIO, and
> > communicating synchronization points via interrupts and doorbell registers.
>
> Sure, but that's a hardware design choice, it's different from
> ripping out the assumptions about device behaviour from
> underneath an existing driver.

That's why I wrote:

Devices have to request BQL-free MMIO explicitly.  You can just use all
the infrastructure to do unlocked bus-master DMA, you can limit BQL-free
MMIO to PV devices, or to extremely simple devices, or to one or two
highly-optimized registers.

Of course the choice of what's safe and what's not depends on the
hardware design and on what the device can expect from the drivers (the
PCI spec doesn't forbid putting additional requirements).

Paolo

Reply via email to