All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: Anthony PERARD <anthony.perard@citrix.com>,
	Wei Liu <wei.liu2@citrix.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	qemu-block@nongnu.org,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	qemu-devel@nongnu.org, peterx@redhat.com,
	linux-kernel@vger.kernel.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	iommu@lists.linux-foundation.org,
	Andy Lutomirski <luto@kernel.org>,
	kvm@vger.kernel.org, Amit Shah <amit.shah@redhat.com>,
	pbonzini@redhat.com, virtualization@lists.linux-foundation.org,
	David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH V2 RFC] fixup! virtio: convert to use DMA api
Date: Wed, 27 Apr 2016 17:34:30 +0300	[thread overview]
Message-ID: <20160427172630-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <20160427142331.GH17926@8bytes.org>

On Wed, Apr 27, 2016 at 04:23:32PM +0200, Joerg Roedel wrote:
> On Wed, Apr 27, 2016 at 04:37:04PM +0300, Michael S. Tsirkin wrote:
> > One correction: it's a feature of the device in the system.
> > There could be a mix of devices bypassing and not
> > bypassing the IOMMU.
> 
> No, it really is not. A device can't chose to bypass the IOMMU. But the
> IOMMU can chose to let the device bypass.

QEMU can choose to bypass IOMMU for one device and not the other.
IOMMU in QEMU isn't involved when it's bypassed.

> So any fix here belongs
> into the platform/iommu code too and not into some driver.

Fine but this is beside the point. Almost all virtio devices
bypass IOMMU and what this patch does is create a way
to detect devices that don't. This code can maybe go into
platform.

> > Sounds good. And a way to detect appropriate devices could
> > be by looking at the feature flag, perhaps?
> 
> Again, no! The way to detect that is to look into the iommu description
> structures provided by the firmware. They provide everything necessary
> to tell the iommu code which devices are not translated.
> 
> 
> 
> 	Joerg

It would be easy if they did but they don't do this on all systems.
In particular the idea for firmware interface was clearly
that a given bus either is connected through IOMMU or bypassing it.
Whether virtio bypasses the iommu is unrelated to the bus it's on.

-- 
MST

WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: David Woodhouse <dwmw2@infradead.org>,
	Kevin Wolf <kwolf@redhat.com>, Wei Liu <wei.liu2@citrix.com>,
	Andy Lutomirski <luto@kernel.org>,
	qemu-block@nongnu.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Jason Wang <jasowang@redhat.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	qemu-devel@nongnu.org, peterx@redhat.com,
	linux-kernel@vger.kernel.org, Amit Shah <amit.shah@redhat.com>,
	iommu@lists.linux-foundation.org,
	Stefan Hajnoczi <stefanha@redhat.com>,
	kvm@vger.kernel.org, cornelia.huck@de.ibm.com,
	pbonzini@redhat.com, virtualization@lists.linux-foundation.org,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: Re: [PATCH V2 RFC] fixup! virtio: convert to use DMA api
Date: Wed, 27 Apr 2016 17:34:30 +0300	[thread overview]
Message-ID: <20160427172630-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <20160427142331.GH17926@8bytes.org>

On Wed, Apr 27, 2016 at 04:23:32PM +0200, Joerg Roedel wrote:
> On Wed, Apr 27, 2016 at 04:37:04PM +0300, Michael S. Tsirkin wrote:
> > One correction: it's a feature of the device in the system.
> > There could be a mix of devices bypassing and not
> > bypassing the IOMMU.
> 
> No, it really is not. A device can't chose to bypass the IOMMU. But the
> IOMMU can chose to let the device bypass.

QEMU can choose to bypass IOMMU for one device and not the other.
IOMMU in QEMU isn't involved when it's bypassed.

> So any fix here belongs
> into the platform/iommu code too and not into some driver.

Fine but this is beside the point. Almost all virtio devices
bypass IOMMU and what this patch does is create a way
to detect devices that don't. This code can maybe go into
platform.

> > Sounds good. And a way to detect appropriate devices could
> > be by looking at the feature flag, perhaps?
> 
> Again, no! The way to detect that is to look into the iommu description
> structures provided by the firmware. They provide everything necessary
> to tell the iommu code which devices are not translated.
> 
> 
> 
> 	Joerg

It would be easy if they did but they don't do this on all systems.
In particular the idea for firmware interface was clearly
that a given bus either is connected through IOMMU or bypassing it.
Whether virtio bypasses the iommu is unrelated to the bus it's on.

-- 
MST

WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: David Woodhouse <dwmw2@infradead.org>,
	Kevin Wolf <kwolf@redhat.com>, Wei Liu <wei.liu2@citrix.com>,
	Andy Lutomirski <luto@kernel.org>,
	qemu-block@nongnu.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Jason Wang <jasowang@redhat.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	qemu-devel@nongnu.org, peterx@redhat.com,
	linux-kernel@vger.kernel.org, Amit Shah <amit.shah@redhat.com>,
	iommu@lists.linux-foundation.org,
	Stefan Hajnoczi <stefanha@redhat.com>,
	kvm@vger.kernel.org, cornelia.huck@de.ibm.com,
	pbonzini@redhat.com, virtualization@lists.linux-foundation.org,
	Anthony PERARD <anthony.perard@citrix.com>
Subject: Re: [Qemu-devel] [PATCH V2 RFC] fixup! virtio: convert to use DMA api
Date: Wed, 27 Apr 2016 17:34:30 +0300	[thread overview]
Message-ID: <20160427172630-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <20160427142331.GH17926@8bytes.org>

On Wed, Apr 27, 2016 at 04:23:32PM +0200, Joerg Roedel wrote:
> On Wed, Apr 27, 2016 at 04:37:04PM +0300, Michael S. Tsirkin wrote:
> > One correction: it's a feature of the device in the system.
> > There could be a mix of devices bypassing and not
> > bypassing the IOMMU.
> 
> No, it really is not. A device can't chose to bypass the IOMMU. But the
> IOMMU can chose to let the device bypass.

QEMU can choose to bypass IOMMU for one device and not the other.
IOMMU in QEMU isn't involved when it's bypassed.

> So any fix here belongs
> into the platform/iommu code too and not into some driver.

Fine but this is beside the point. Almost all virtio devices
bypass IOMMU and what this patch does is create a way
to detect devices that don't. This code can maybe go into
platform.

> > Sounds good. And a way to detect appropriate devices could
> > be by looking at the feature flag, perhaps?
> 
> Again, no! The way to detect that is to look into the iommu description
> structures provided by the firmware. They provide everything necessary
> to tell the iommu code which devices are not translated.
> 
> 
> 
> 	Joerg

It would be easy if they did but they don't do this on all systems.
In particular the idea for firmware interface was clearly
that a given bus either is connected through IOMMU or bypassing it.
Whether virtio bypasses the iommu is unrelated to the bus it's on.

-- 
MST

  parent reply	other threads:[~2016-04-27 14:34 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-21 13:43 [PATCH V2 RFC] fixup! virtio: convert to use DMA api Michael S. Tsirkin
2016-04-21 13:43 ` [Qemu-devel] " Michael S. Tsirkin
2016-04-21 13:43 ` Michael S. Tsirkin
2016-04-21 13:54 ` Wei Liu
2016-04-21 13:54   ` [Qemu-devel] " Wei Liu
2016-04-21 13:54   ` Wei Liu
2016-04-27 12:18   ` David Woodhouse
2016-04-27 12:18     ` [Qemu-devel] " David Woodhouse
2016-04-27 13:37     ` Michael S. Tsirkin
2016-04-27 13:37     ` Michael S. Tsirkin
2016-04-27 13:37       ` [Qemu-devel] " Michael S. Tsirkin
2016-04-27 14:23       ` Joerg Roedel
     [not found]       ` <20160427153345-mutt-send-email-mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-04-27 14:23         ` Joerg Roedel
2016-04-27 14:23           ` [Qemu-devel] " Joerg Roedel
2016-04-27 14:23           ` Joerg Roedel
2016-04-27 14:31           ` Andy Lutomirski
2016-04-27 14:31             ` [Qemu-devel] " Andy Lutomirski
2016-04-27 14:31             ` Andy Lutomirski
     [not found]             ` <CALCETrVkSSJbjoK8i7pLsSYR0o=Wy1UP-mrmn2uxYUd81g18dg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-27 14:38               ` Michael S. Tsirkin
2016-04-27 14:38                 ` [Qemu-devel] " Michael S. Tsirkin
2016-04-27 14:38                 ` Michael S. Tsirkin
2016-04-27 14:43                 ` Andy Lutomirski
2016-04-27 14:43                   ` [Qemu-devel] " Andy Lutomirski
2016-04-27 14:43                   ` Andy Lutomirski
2016-04-27 14:54                   ` Michael S. Tsirkin
2016-04-27 14:54                     ` [Qemu-devel] " Michael S. Tsirkin
2016-04-27 14:54                     ` Michael S. Tsirkin
2016-04-27 14:58                     ` Joerg Roedel
2016-04-27 14:58                     ` Joerg Roedel
2016-04-27 14:58                       ` [Qemu-devel] " Joerg Roedel
2016-04-27 15:09                       ` Michael S. Tsirkin
2016-04-27 15:09                         ` [Qemu-devel] " Michael S. Tsirkin
2016-04-27 15:09                         ` Michael S. Tsirkin
2016-04-27 15:09                       ` Michael S. Tsirkin
2016-04-27 15:10                     ` Andy Lutomirski
2016-04-27 15:10                     ` Andy Lutomirski
2016-04-27 15:10                       ` [Qemu-devel] " Andy Lutomirski
2016-04-27 15:10                       ` Andy Lutomirski
2016-04-27 14:54                   ` Michael S. Tsirkin
2016-04-27 14:43                 ` Andy Lutomirski
2016-04-27 14:38             ` Michael S. Tsirkin
2016-04-27 14:34           ` Michael S. Tsirkin [this message]
2016-04-27 14:34             ` [Qemu-devel] " Michael S. Tsirkin
2016-04-27 14:34             ` Michael S. Tsirkin
     [not found]             ` <20160427172630-mutt-send-email-mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-04-27 14:56               ` Joerg Roedel
2016-04-27 14:56                 ` [Qemu-devel] " Joerg Roedel
2016-04-27 14:56                 ` Joerg Roedel
2016-04-27 15:05                 ` Michael S. Tsirkin
     [not found]                 ` <20160427145632.GI17926-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2016-04-27 15:05                   ` Michael S. Tsirkin
2016-04-27 15:05                     ` [Qemu-devel] " Michael S. Tsirkin
2016-04-27 15:05                     ` Michael S. Tsirkin
2016-04-27 15:15                     ` David Woodhouse
2016-04-27 15:15                       ` [Qemu-devel] " David Woodhouse
2016-04-27 15:15                       ` David Woodhouse
2016-04-27 18:17                       ` Michael S. Tsirkin
2016-04-27 18:17                         ` [Qemu-devel] " Michael S. Tsirkin
2016-04-27 18:17                         ` Michael S. Tsirkin
2016-04-27 19:16                         ` David Woodhouse
2016-04-27 19:16                           ` [Qemu-devel] " David Woodhouse
2016-04-27 19:16                           ` David Woodhouse
     [not found]                           ` <1461784617.118304.181.camel-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2016-04-28 14:34                             ` Michael S. Tsirkin
2016-04-28 14:34                               ` [Qemu-devel] " Michael S. Tsirkin
2016-04-28 14:34                               ` Michael S. Tsirkin
2016-04-28 15:11                               ` David Woodhouse
2016-04-28 15:11                                 ` [Qemu-devel] " David Woodhouse
2016-04-28 15:11                                 ` David Woodhouse
     [not found]                                 ` <1461856314.33870.98.camel-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2016-04-28 15:37                                   ` Michael S. Tsirkin
2016-04-28 15:37                                     ` [Qemu-devel] " Michael S. Tsirkin
2016-04-28 15:37                                     ` Michael S. Tsirkin
2016-04-28 15:48                                     ` David Woodhouse
2016-04-28 15:48                                       ` [Qemu-devel] " David Woodhouse
2016-04-28 15:48                                       ` David Woodhouse
2016-05-01 10:37                                       ` Michael S. Tsirkin
2016-05-01 10:37                                         ` [Qemu-devel] " Michael S. Tsirkin
2016-05-01 10:37                                         ` Michael S. Tsirkin
2016-04-28 15:48                                     ` David Woodhouse
     [not found]                                     ` <20160428182341-mutt-send-email-mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-09 11:09                                       ` Paolo Bonzini
2016-05-09 11:09                                         ` [Qemu-devel] " Paolo Bonzini
2016-05-09 11:09                                         ` Paolo Bonzini
2016-05-09 11:09                                     ` Paolo Bonzini
2016-04-28 15:37                                 ` Michael S. Tsirkin
2016-04-28 14:34                           ` Michael S. Tsirkin
2016-04-27 19:16                         ` David Woodhouse
2016-04-27 18:17                       ` Michael S. Tsirkin
2016-04-27 15:15                     ` David Woodhouse
2016-04-27 14:56             ` Joerg Roedel
2016-04-27 12:18   ` David Woodhouse
2016-04-21 13:54 ` Wei Liu
2016-04-21 14:56 ` Stefan Hajnoczi
2016-04-21 14:56 ` Stefan Hajnoczi
2016-04-21 14:56   ` [Qemu-devel] " Stefan Hajnoczi
2016-04-21 15:11   ` Michael S. Tsirkin
2016-04-21 15:11     ` [Qemu-devel] " Michael S. Tsirkin
2016-04-21 15:11     ` Michael S. Tsirkin
2016-04-22  9:33     ` Stefan Hajnoczi
2016-04-22  9:33       ` [Qemu-devel] " Stefan Hajnoczi
2016-04-22  9:33       ` Stefan Hajnoczi
2016-04-22  9:33     ` Stefan Hajnoczi

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=20160427172630-mutt-send-email-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=amit.shah@redhat.com \
    --cc=anthony.perard@citrix.com \
    --cc=borntraeger@de.ibm.com \
    --cc=dwmw2@infradead.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=wei.liu2@citrix.com \
    /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.