From: Andy Lutomirski <luto@kernel.org> To: "Michael S. Tsirkin" <mst@redhat.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>, David Woodhouse <dwmw2@infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "David S. Miller" <davem@davemloft.net>, sparclinux@vger.kernel.org, Joerg Roedel <jroedel@suse.de>, Christian Borntraeger <borntraeger@de.ibm.com>, Cornelia Huck <cornelia.huck@de.ibm.com>, Sebastian Ott <sebott@linux.vnet.ibm.com>, Paolo Bonzini <pbonzini@redhat.com>, Christoph Hellwig <hch@lst.de>, KVM <kvm@vger.kernel.org>, Martin Schwidefsky <schwidefsky@de.ibm.com>, linux-s390 <linux-s390@vger.kernel.org>, Linux Virtualization <virtualization@lists.linux-foundation.org>, David Vrabel <david.vrabel@citrix.com>, Stefano Stabellini <stefano.stabellini@eu.citrix.com>, xen-devel@lists.xenproject.org, Andy Lutomirski <luto@kernel.org> Subject: [PATCH v5 00/10] virtio DMA API, yet again Date: Thu, 28 Jan 2016 18:31:13 -0800 [thread overview] Message-ID: <cover.1454034075.git.luto@kernel.org> (raw) This switches virtio to use the DMA API on Xen and if requested by module option. This fixes virtio on Xen, and it should break anything because it's off by default on everything except Xen PV on x86. To the Xen people: is this okay? If it doesn't work on other Xen variants (PVH? HVM?), can you submit follow-up patches to fix it? To everyone else: we've waffled on this for way too long. I think we should to get DMA API implementation in with a conservative policy like this rather than waiting until we achieve perfection. I'm tired of carrying these patches around. Michael, if these survive review, can you stage these in your tree? Can you also take a look at tools/virtio? I probably broke it, but I couldn't get it to build without these patches either, so I'm stuck. Changes from v4: - Bake vring_use_dma_api in from the beginning. - Automatically enable only on Xen. - Add module parameter. - Add s390 and alpha DMA API implementations. - Rebase to 4.5-rc1. Changes from v3: - More big-endian fixes. - Added better virtio-ring APIs that handle allocation and use them in virtio-mmio and virtio-pci. - Switch to Michael's virtio-net patch. Changes from v2: - Fix vring_mapping_error incorrect argument 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 (7): vring: Introduce vring_use_dma_api() virtio_ring: Support DMA APIs virtio: Add improved queue allocation API virtio_mmio: Use the DMA API if enabled virtio_pci: Use the DMA API if enabled vring: Use the DMA API on Xen vring: Add a module parameter to force-enable the DMA API Christian Borntraeger (3): dma: Provide simple noop dma ops alpha/dma: use common noop dma ops s390/dma: Allow per device dma ops arch/alpha/kernel/pci-noop.c | 46 +--- arch/s390/Kconfig | 6 +- arch/s390/include/asm/device.h | 6 +- arch/s390/include/asm/dma-mapping.h | 6 +- arch/s390/pci/pci.c | 1 + arch/s390/pci/pci_dma.c | 4 +- drivers/virtio/Kconfig | 2 +- drivers/virtio/virtio_mmio.c | 67 ++---- drivers/virtio/virtio_pci_common.h | 6 - drivers/virtio/virtio_pci_legacy.c | 42 ++-- drivers/virtio/virtio_pci_modern.c | 61 ++---- drivers/virtio/virtio_ring.c | 412 ++++++++++++++++++++++++++++++------ include/linux/dma-mapping.h | 2 + include/linux/virtio.h | 23 +- include/linux/virtio_ring.h | 35 +++ lib/Makefile | 1 + lib/dma-noop.c | 75 +++++++ tools/virtio/linux/dma-mapping.h | 17 ++ 18 files changed, 568 insertions(+), 244 deletions(-) create mode 100644 lib/dma-noop.c create mode 100644 tools/virtio/linux/dma-mapping.h -- 2.5.0
WARNING: multiple messages have this Message-ID (diff)
From: Andy Lutomirski <luto@kernel.org> To: "Michael S. Tsirkin" <mst@redhat.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>, David Woodhouse <dwmw2@infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "David S. Miller" <davem@davemloft.net>, sparclinux@vger.kernel.org, Joerg Roedel <jroedel@suse.de>, Christian Borntraeger <borntraeger@de.ibm.com>, Cornelia Huck <cornelia.huck@de.ibm.com>, Sebastian Ott <sebott@linux.vnet.ibm.com>, Paolo Bonzini <pbonzini@redhat.com>, Christoph Hellwig <hch@lst.de>, KVM <kvm@vger.kernel.org>, Martin Schwidefsky <schwidefsky@de.ibm.com>, linux-s390 <linux-s390@vger.kernel.org>, Linux Virtualization <virtualization@lists.linux-foundation.org>, David Vrabel <david.vrabel@citrix.com>, Stefano Stabellini <stefano.stabellini@eu.citrix.com>, xen-devel@lists.xenproject.org, Andy Lutomirski <luto@kernel.org> Subject: [PATCH v5 00/10] virtio DMA API, yet again Date: Fri, 29 Jan 2016 02:31:13 +0000 [thread overview] Message-ID: <cover.1454034075.git.luto@kernel.org> (raw) This switches virtio to use the DMA API on Xen and if requested by module option. This fixes virtio on Xen, and it should break anything because it's off by default on everything except Xen PV on x86. To the Xen people: is this okay? If it doesn't work on other Xen variants (PVH? HVM?), can you submit follow-up patches to fix it? To everyone else: we've waffled on this for way too long. I think we should to get DMA API implementation in with a conservative policy like this rather than waiting until we achieve perfection. I'm tired of carrying these patches around. Michael, if these survive review, can you stage these in your tree? Can you also take a look at tools/virtio? I probably broke it, but I couldn't get it to build without these patches either, so I'm stuck. Changes from v4: - Bake vring_use_dma_api in from the beginning. - Automatically enable only on Xen. - Add module parameter. - Add s390 and alpha DMA API implementations. - Rebase to 4.5-rc1. Changes from v3: - More big-endian fixes. - Added better virtio-ring APIs that handle allocation and use them in virtio-mmio and virtio-pci. - Switch to Michael's virtio-net patch. Changes from v2: - Fix vring_mapping_error incorrect argument 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 (7): vring: Introduce vring_use_dma_api() virtio_ring: Support DMA APIs virtio: Add improved queue allocation API virtio_mmio: Use the DMA API if enabled virtio_pci: Use the DMA API if enabled vring: Use the DMA API on Xen vring: Add a module parameter to force-enable the DMA API Christian Borntraeger (3): dma: Provide simple noop dma ops alpha/dma: use common noop dma ops s390/dma: Allow per device dma ops arch/alpha/kernel/pci-noop.c | 46 +--- arch/s390/Kconfig | 6 +- arch/s390/include/asm/device.h | 6 +- arch/s390/include/asm/dma-mapping.h | 6 +- arch/s390/pci/pci.c | 1 + arch/s390/pci/pci_dma.c | 4 +- drivers/virtio/Kconfig | 2 +- drivers/virtio/virtio_mmio.c | 67 ++---- drivers/virtio/virtio_pci_common.h | 6 - drivers/virtio/virtio_pci_legacy.c | 42 ++-- drivers/virtio/virtio_pci_modern.c | 61 ++---- drivers/virtio/virtio_ring.c | 412 ++++++++++++++++++++++++++++++------ include/linux/dma-mapping.h | 2 + include/linux/virtio.h | 23 +- include/linux/virtio_ring.h | 35 +++ lib/Makefile | 1 + lib/dma-noop.c | 75 +++++++ tools/virtio/linux/dma-mapping.h | 17 ++ 18 files changed, 568 insertions(+), 244 deletions(-) create mode 100644 lib/dma-noop.c create mode 100644 tools/virtio/linux/dma-mapping.h -- 2.5.0
next reply other threads:[~2016-01-29 2:31 UTC|newest] Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-01-29 2:31 Andy Lutomirski [this message] 2016-01-29 2:31 ` [PATCH v5 00/10] virtio DMA API, yet again Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 01/10] dma: Provide simple noop dma ops Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 02/10] alpha/dma: use common " Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 03/10] s390/dma: Allow per device " Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 04/10] vring: Introduce vring_use_dma_api() Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-02-01 11:22 ` David Woodhouse 2016-02-01 11:22 ` David Woodhouse 2016-02-01 11:22 ` David Woodhouse 2016-02-01 11:22 ` David Woodhouse 2016-02-01 13:23 ` Michael S. Tsirkin 2016-02-01 13:23 ` Michael S. Tsirkin 2016-02-01 13:23 ` Michael S. Tsirkin 2016-02-01 15:39 ` Andy Lutomirski 2016-02-01 15:39 ` Andy Lutomirski 2016-02-01 15:39 ` Andy Lutomirski 2016-02-01 16:11 ` David Woodhouse 2016-02-01 16:11 ` David Woodhouse 2016-02-01 16:11 ` David Woodhouse 2016-02-01 15:39 ` Andy Lutomirski 2016-02-01 13:23 ` Michael S. Tsirkin 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 05/10] virtio_ring: Support DMA APIs Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 06/10] virtio: Add improved queue allocation API Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 07/10] virtio_mmio: Use the DMA API if enabled Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 08/10] virtio_pci: " Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 09/10] vring: Use the DMA API on Xen Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 10:34 ` [Xen-devel] " David Vrabel 2016-01-29 10:34 ` David Vrabel 2016-01-29 10:34 ` David Vrabel 2016-01-31 20:09 ` Michael S. Tsirkin 2016-01-31 20:09 ` Michael S. Tsirkin 2016-01-31 20:09 ` Michael S. Tsirkin 2016-01-31 20:13 ` Andy Lutomirski 2016-01-31 20:13 ` Andy Lutomirski 2016-01-31 20:13 ` Andy Lutomirski 2016-01-31 20:18 ` Michael S. Tsirkin 2016-01-31 20:18 ` [Xen-devel] " Michael S. Tsirkin 2016-01-31 20:18 ` Michael S. Tsirkin 2016-01-31 20:18 ` Michael S. Tsirkin 2016-01-31 20:27 ` Andy Lutomirski 2016-01-31 20:27 ` Andy Lutomirski 2016-01-31 20:27 ` Andy Lutomirski 2016-01-31 20:27 ` Andy Lutomirski 2016-01-31 20:13 ` Andy Lutomirski 2016-02-01 21:24 ` [Xen-devel] " Wei Liu 2016-02-01 21:24 ` Wei Liu 2016-02-01 21:24 ` Wei Liu 2016-02-01 21:24 ` Wei Liu 2016-01-31 20:09 ` Michael S. Tsirkin 2016-01-29 10:34 ` David Vrabel 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` [PATCH v5 10/10] vring: Add a module parameter to force-enable the DMA API Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 2:31 ` Andy Lutomirski 2016-01-29 11:01 ` [PATCH v5 00/10] virtio DMA API, yet again David Woodhouse 2016-01-29 11:01 ` David Woodhouse 2016-01-29 11:01 ` David Woodhouse 2016-01-31 19:06 ` Christoph Hellwig 2016-01-31 19:06 ` Christoph Hellwig 2016-01-31 19:06 ` Christoph Hellwig 2016-01-31 19:06 ` Christoph Hellwig 2016-01-31 20:12 ` Michael S. Tsirkin 2016-01-31 20:12 ` Michael S. Tsirkin 2016-01-31 20:12 ` Michael S. Tsirkin 2016-01-31 20:12 ` Michael S. Tsirkin 2016-01-31 20:16 ` Andy Lutomirski 2016-01-31 20:16 ` Andy Lutomirski 2016-01-31 20:16 ` Andy Lutomirski 2016-01-31 20:16 ` Andy Lutomirski 2016-02-01 11:00 ` [Xen-devel] " Wei Liu 2016-02-01 11:00 ` Wei Liu 2016-02-01 11:00 ` Wei Liu 2016-02-01 18:04 ` Andy Lutomirski 2016-02-01 18:04 ` [Xen-devel] " Andy Lutomirski 2016-02-01 18:04 ` Andy Lutomirski 2016-02-01 18:04 ` Andy Lutomirski 2016-02-01 21:22 ` Wei Liu 2016-02-01 21:22 ` Wei Liu 2016-02-01 21:22 ` Wei Liu 2016-02-01 21:22 ` Wei Liu 2016-02-01 11:00 ` Wei Liu -- strict thread matches above, loose matches on Subject: below -- 2016-01-29 2:31 Andy Lutomirski 2016-01-29 2:31 Andy Lutomirski
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1454034075.git.luto@kernel.org \ --to=luto@kernel.org \ --cc=benh@kernel.crashing.org \ --cc=borntraeger@de.ibm.com \ --cc=cornelia.huck@de.ibm.com \ --cc=davem@davemloft.net \ --cc=david.vrabel@citrix.com \ --cc=dwmw2@infradead.org \ --cc=hch@lst.de \ --cc=jroedel@suse.de \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-s390@vger.kernel.org \ --cc=mst@redhat.com \ --cc=pbonzini@redhat.com \ --cc=schwidefsky@de.ibm.com \ --cc=sebott@linux.vnet.ibm.com \ --cc=sparclinux@vger.kernel.org \ --cc=stefano.stabellini@eu.citrix.com \ --cc=virtualization@lists.linux-foundation.org \ --cc=xen-devel@lists.xenproject.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.