On 07/20/2011 01:10 AM, Sasha Levin wrote:
On Tue, 2011-07-19 at 21:53 -0500, Anthony Liguori wrote:
QEMU does use it and it's quite important.  Coalesced MMIO is really
about write caching MMIO exits.  It only works with devices that have
registers where writing has no side effects.  Moreover, it only really
works well when there are lots and lots of writes to these registers
simultaneously.

Couple that with the fact that the buffer is a fixed size and it's
really not flexible enough to be useful for a wide variety of devices.

But for VGA planar mode writes, it works wonders.  It would be terrible
to totally lose it.  That said, I'm not at all convinced it's useful for
much other than VGA planar mode.

Why was the coalesced approach taken in the first place? When I tried
using it for VGA in /tools/kvm it just seemed to me like a builtin
virtio-memory transport.

I'm not really sure what you mean by that. Coalesced I/O is old. It predates the ioeventfd.

I think using a pipe/socket makes a bit more sense.

Regards,

Anthony Liguori


Thats why I think planar VGA would be fine if we deprecate coalesced
mmio in favor of either socket ioeventfds or a new virtio-memory device.



Reply via email to