On 25 August 2017 at 14:19, David Gibson <da...@gibson.dropbear.id.au> wrote: > Hm. Why do we need to construct full ASes for virtio-blk, rather than > just MRs?
It's the PCI layer that's doing it, but the overall reason is because virtio-blk needs to make memory transactions (DMA reads and writes). The AddressSpace is our construct for "thing you use to be able to efficiently make memory transactions on a MemoryRegion". (This is what the FlatView and AddressSpaceDispatch data structures are for -- they let you efficiently go from "write to address 0x4000 in this thing" to the actual destination RAM or device read/write pointers.) thanks -- PMM