All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Lutomirski <luto@amacapital.net>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: linux-s390 <linux-s390@vger.kernel.org>,
	sparclinux@vger.kernel.org, Joerg Roedel <jroedel@suse.de>,
	KVM <kvm@vger.kernel.org>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Sebastian Ott <sebott@linux.vnet.ibm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Linux Virtualization <virtualization@lists.linux-foundation.org>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Vrabel <david.vrabel@citrix.com>,
	Andy Lutomirski <luto@kernel.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Cornelia Huck <cornelia.huck@de.ibm.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Christoph Hellwig <hch@lst.de>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>
Subject: Re: [PATCH v5 09/10] vring: Use the DMA API on Xen
Date: Sun, 31 Jan 2016 12:27:39 -0800	[thread overview]
Message-ID: <CALCETrVjocgx3wVcsgJ3-eLTASvS5rtam7SkQVyXGkx8=xVZFQ__45586.8253288374$1454272169$gmane$org@mail.gmail.com> (raw)
In-Reply-To: <20160131221600-mutt-send-email-mst@redhat.com>

On Sun, Jan 31, 2016 at 12:18 PM, Michael S. Tsirkin <mst@redhat.com> 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 <mst@redhat.com> 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 <luto@kernel.org>
>> >> > ---
>> >> >  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

  parent reply	other threads:[~2016-01-31 20:28 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-29  2:31 [PATCH v5 00/10] virtio DMA API, yet again Andy Lutomirski
2016-01-29  2:31 ` 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 [this message]
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

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='CALCETrVjocgx3wVcsgJ3-eLTASvS5rtam7SkQVyXGkx8=xVZFQ__45586.8253288374$1454272169$gmane$org@mail.gmail.com' \
    --to=luto@amacapital.net \
    --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=luto@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: link
Be 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.