Thread (26 messages) 26 messages, 4 authors, 2013-08-30

[PATCH v4 10/10] xen/arm,arm64: enable SWIOTLB_XEN

From: Stefano Stabellini <hidden>
Date: 2013-08-29 15:38:31
Also in: lkml, xen-devel

On Thu, 29 Aug 2013, Ian Campbell wrote:
On Wed, 2013-08-28 at 21:07 +0100, Stefano Stabellini wrote:
quoted
On Thu, 15 Aug 2013, Ian Campbell wrote:
quoted
On Thu, 2013-08-15 at 12:10 +0100, Stefano Stabellini wrote:
quoted
At the moment always rely on swiotlb-xen, but when Xen starts supporting
hardware IOMMUs we'll be able to avoid it conditionally on the presence
of an IOMMU on the platform.
Do we have any idea how we are going to do this?

It's extra complicated if you consider that on some systems on some of
the devices are behind an IOMMU :-/

I wonder if we can enumerate which devices have an IOMMU at boot time
and force a ludicrous dma mask (such as 0) if one isn't present in order
to force us to always take the exchange_and_pin path?
We don't need to worry about how to specify which devices need to go via
the swiotlb internally, because we have our own arm specific
dma_map_ops. At the moment they are just implemented using the
swiotlb-xen functions, but we could easily provide wrappers that check
our own internal whitelist/blacklist and go via swiotlb-xen only in
those cases.
OK, but how do we decide which devices go on those lists? We need some
sort of indication from the hypervisor, don't we? Only Xen knows if it
has an iommu it can use because the iommu must necessarily be hidden
from Linux.
Right. Maybe Xen could mark the devices that are safe to use without
swiotlb-xen on device tree? Adding a property to the node?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help