Re: [RFC 0/4] Virtio uses DMA API for all devices
From: Christoph Hellwig <hch@infradead.org>
Date: 2018-08-05 07:26:01
Also in:
linuxppc-dev, virtualization
From: Christoph Hellwig <hch@infradead.org>
Date: 2018-08-05 07:26:01
Also in:
linuxppc-dev, virtualization
On Sun, Aug 05, 2018 at 03:09:55AM +0300, Michael S. Tsirkin wrote:
So in this case however I'm not sure what exactly do we want to add. It seems that from point of view of the device, there is nothing special - it just gets a PA and writes there. It also seems that guest does not need to get any info from the device either. Instead guest itself needs device to DMA into specific addresses, for its own reasons. It seems that the fact that within guest it's implemented using a bounce buffer and that it's easiest to do by switching virtio to use the DMA API isn't something virtio spec concerns itself with.
And that is exactly what we added bus_dma_mask for - the case where the device itself has not limitation (or a bigger limitation), but the platform limits the accessible dma ranges. One typical case is a PCIe root port that is only connected to the CPU through an interconnect that is limited to 32 address bits for example.