|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1 06/10] iommu: Add extra use_iommu argument to iommu_domain_init()
>>> On 18.05.17 at 19:41, <olekstysh@xxxxxxxxx> wrote:
> patch #6: As for the current patch, likely the "init" platform
> callback should be extended with
> extra "use_iommu" argument as well as the "iommu_domain_init" API. In
> that case we
> would just pass thought incoming flag to the IOMMU drivers followed by
> updating "need_iommu" domain flag.
>
> Something like this:
> ...
> int iommu_domain_init(struct domain *d, bool use_iommu)
> {
> struct domain_iommu *hd = dom_iommu(d);
> int ret = 0;
>
> ret = arch_iommu_domain_init(d);
> if ( ret )
> return ret;
>
> if ( !iommu_enabled )
> return 0;
>
> hd->platform_ops = iommu_get_ops();
> ret = hd->platform_ops->init(d, use_iommu);
> if ( ret )
> return ret;
>
> d->need_iommu = !!use_iommu;
>
> return 0;
> }
> ...
The final shape of this primarily depends on ARM side needs.
However, you need to be careful to make sure the final setting
of d->need_iommu then is no different than it is today on at
least x86. I'm mentioning this in particular because of e.g.
d->need_iommu = !!iommu_dom0_strict;
in iommu_hwdom_init().
Also as a minor remark note that in your new code the !! would
not be needed.
> patch #7: This patch should be just dropped.
>
> patch #8: As we always allocate the page table for hardware domain,
> this patch should be reworked.
> The use_iommu flag should be set for both archs in case of hardware
> domain. Having d->need_iommu set at the early stage we won't skip
> IOMMU
> mapping updates anymore. And as the result the existing in
> iommu_hwdom_init() code that goes through the list of page and tries
> to retrieve mapping could be just dropped
> instead of moving it to the arch-specific part.
And again, careful here: There are three command line options
influencing which pages do actually get mapped, and in which way
(iommu=dom0-passthrough, iommu=dom0-strict, and VT-d's
iommu_inclusive_mapping). The behavior after your change must
not differ from current behavior regardless of which of these
options may be used.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |