From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Lutomirski Subject: Re: [PATCH v5 09/10] vring: Use the DMA API on Xen Date: Sun, 31 Jan 2016 12:27:39 -0800 Message-ID: References: <64e979cc139c5e6a9bbfae9f1bc5e6693d91bea9.1454034075.git.luto@kernel.org> <56AB4053.4070007@citrix.com> <20160131220601-mutt-send-email-mst@redhat.com> <20160131221600-mutt-send-email-mst@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1aPybJ-0008Tm-5X for xen-devel@lists.xenproject.org; Sun, 31 Jan 2016 20:28:01 +0000 Received: by mail-oi0-f42.google.com with SMTP id p187so77634016oia.2 for ; Sun, 31 Jan 2016 12:27:59 -0800 (PST) In-Reply-To: <20160131221600-mutt-send-email-mst@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Michael S. Tsirkin" Cc: linux-s390 , sparclinux@vger.kernel.org, Joerg Roedel , KVM , Stefano Stabellini , Benjamin Herrenschmidt , Sebastian Ott , "linux-kernel@vger.kernel.org" , Linux Virtualization , Christian Borntraeger , "David S. Miller" , David Vrabel , Andy Lutomirski , Paolo Bonzini , Cornelia Huck , "xen-devel@lists.xenproject.org" , David Woodhouse , Christoph Hellwig , Martin Schwidefsky List-Id: xen-devel@lists.xenproject.org On Sun, Jan 31, 2016 at 12:18 PM, Michael S. Tsirkin wrote: > On Sun, Jan 31, 2016 at 12:13:58PM -0800, Andy Lutomirski wrote: >> On Sun, Jan 31, 2016 at 12:09 PM, Michael S. Tsirkin wrote: >> > On Fri, Jan 29, 2016 at 10:34:59AM +0000, David Vrabel wrote: >> >> On 29/01/16 02:31, Andy Lutomirski wrote: >> >> > Signed-off-by: Andy Lutomirski >> >> > --- >> >> > drivers/virtio/virtio_ring.c | 12 ++++++++++++ >> >> > 1 file changed, 12 insertions(+) >> >> > >> >> > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c >> >> > index c169c6444637..305c05cc249a 100644 >> >> > --- a/drivers/virtio/virtio_ring.c >> >> > +++ b/drivers/virtio/virtio_ring.c >> >> > @@ -47,6 +47,18 @@ >> >> > >> >> > static bool vring_use_dma_api(void) >> >> > { >> >> > +#if defined(CONFIG_X86) && defined(CONFIG_XEN) >> >> > + /* >> >> > + * In theory, it's possible to have a buggy QEMU-supposed >> >> > + * emulated Q35 IOMMU and Xen enabled at the same time. On >> >> > + * such a configuration, virtio has never worked and will >> >> > + * not work without an even larger kludge. Instead, enable >> >> > + * the DMA API if we're a Xen guest, which at least allows >> >> > + * all of the sensible Xen configurations to work correctly. >> >> > + */ >> >> > + return static_cpu_has(X86_FEATURE_XENPV); >> >> >> >> You want: >> >> >> >> if (xen_domain()) >> >> return true; >> >> >> >> Without the #if so we use the DMA API for all types of Xen guest on all >> >> architectures. >> >> >> >> David >> > >> > I doubt HVM domains can have virtio devices. >> > >> >> They certainly can under nested virt (L0 provides virtio device, L1 is >> Xen, and L2 is Linux). Of course, this won't work given the current >> QEMU situation unless Xen can pass things through to dom0 without an >> IOMMU, which seems plausible to me. >> >> But yes, xen_domain() sounds right to me. I just failed to find that >> function when I wrote this patch. >> >> Michael, if you like the rest of the series, I'd be okay if you >> changed this patch to use xen_domain() when you apply it. If I send a >> v2, I'll fix it up. >> >> --Andy > > I'd rather you just posted a tested v2 of 9/10 for now as I don't test > Xen. It seems easy but I had more than my share of obvious fixes > failing spectacularly. > In that case, let me test for real. Can you point me to a git tree when you have patches 1-8 staged and I'll spin patch 9 v2 and test it with the real context? --Andy