[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] question about memory allocation for driver domain

Hi Ian,

On 09/02/2015 21:08, Ian Campbell wrote:
On Mon, 2015-02-09 at 19:16 +0800, Julien Grall wrote:
The last problem but not the least is, depending on which backend you
are running in the 1:1 domain (such blkback), grant won't be mapped 1:1
to the guest, so you will have to use swiotlb in order to use the right
DMA address. For instance, without swiotlb, guest won't be able to use a
disk partition via blkfront. This because the backend is giving directly
the grant address to the block driver. To solve this, we have to use
swiotlb and set specific DMA callback. For now, there are only used for

Not much we can do here except extend the dom0 code here to
conditionally enable itself for other domains.

You mean in the guest kernel? Maybe we have to introduce a new feature
flags indicating is the domain is using 1:1 mapping or not?

Something along those lines I would expect.

I'm not sure it fits, but this has some similarities with the DTB
bindings used to indicate to the guest that a device is protected (in
the SMMU sense) which you did a while back. It's possible we could reuse
or extend that interface -- after all 1:1 is somewhat like having an
SMMU, at least to the extent that the things the guest is expected to do
are the same.

1:1 domain and having SMMU is not the same, the former requires swiotlb while the latter not.

When the device is protected, we can avoid to use the Xen DMA ops (based on swiotlb). For this purpose, the patch was added a property in the device tree node of device protected by an SMMU.

In the case of the 1:1 mapping we definitely want to use swiotlb, for devices using DMA in 1:1 domain. This will be for the whole guest, so adding a property per device seems pointless.

Reusing the same property would mean that the common use case (device passthrough protected by an SMMU) will require an little extra work. It doesn't sounds right to me.

After all, a per-domain seems the best things to do. It would also helps on platform that doesn't require 1:1 mapping for DOM0 (I'm think about Cavium, and maybe Seattle?). This would increase performance in general.


Julien Grall

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.