Hi Oleksandr,
On 02/08/2019 17:39, Oleksandr Tyshchenko wrote:
+static int ipmmu_iommu_domain_init(struct domain *d)
+{
+ struct ipmmu_vmsa_xen_domain *xen_domain;
+
+ xen_domain = xzalloc(struct ipmmu_vmsa_xen_domain);
+ if ( !xen_domain )
+ return -ENOMEM;
+
+ spin_lock_init(&xen_domain->lock);
+ INIT_LIST_HEAD(&xen_domain->cache_domains);
+ /*
+ * We don't create Root IPMMU domain here, it will be created on demand
+ * only, when attaching the first master device to this Xen domain in
+ * ipmmu_assign_device().
+ * xen_domain->root_domain = NULL;
+ */
+
+ dom_iommu(d)->arch.priv = xen_domain;
While looking at other part of Xen I realized you don't set
IOMMU_FEAT_COHERENT_WALK. Does it mean the IOMMU walker does not support
coherent walk (i.e snooping the cache)?
Note that when this feature is not set, the p2m code will require to clean each
P2M entry when updated. So if the IPMMU supports coherent walk, I would strongly
suggest to set the flag :).
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel