On Tue, Oct 27, 2015 at 11:38:57PM -0700, Andy Lutomirski wrote: > This switches virtio to use the DMA API unconditionally. I'm sure > it breaks things, but it seems to work on x86 using virtio-pci, with > and without Xen, and using both the modern 1.0 variant and the > legacy variant.
I'm very glad to see work on this making progress. I suspect we'll have to find a way to make this optional though, and keep doing the non-DMA API thing with old devices. And I've been debating with myself whether a pci specific thing or a feature bit is preferable. Thoughts? > Changes from v2: > - Fix really embarrassing bug. This version actually works. > > Changes from v1: > - Fix an endian conversion error causing a BUG to hit. > - Fix a DMA ordering issue (swiotlb=force works now). > - Minor cleanups. > > Andy Lutomirski (3): > virtio_net: Stop doing DMA from the stack > virtio_ring: Support DMA APIs > virtio_pci: Use the DMA API > > drivers/net/virtio_net.c | 53 +++++++---- > drivers/virtio/Kconfig | 2 +- > drivers/virtio/virtio_pci_common.h | 3 +- > drivers/virtio/virtio_pci_legacy.c | 19 +++- > drivers/virtio/virtio_pci_modern.c | 34 +++++-- > drivers/virtio/virtio_ring.c | 187 > ++++++++++++++++++++++++++++++------- > tools/virtio/linux/dma-mapping.h | 17 ++++ > 7 files changed, 246 insertions(+), 69 deletions(-) > create mode 100644 tools/virtio/linux/dma-mapping.h > > -- > 2.4.3 _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization