[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Unshared IOMMU issues
Hi, Jan. On Thu, Feb 16, 2017 at 11:36 AM, Jan Beulich <JBeulich@xxxxxxxx> wrote: >>>> On 15.02.17 at 18:43, <olekstysh@xxxxxxxxx> wrote: >> 1. >> I need: >> Allow P2M core on ARM to update IOMMU mapping from the first "p2m_set_entry". >> I do: >> I explicitly set need_iommu flag for *every* guest domain during >> iommu_domain_init() on ARM in case if page table is not shared. >> At that moment I have no knowledge about will any device be assigned >> to this domain or not. I am just want to receive all mapping updates >> from P2M code. The P2M will update IOMMU mapping only when need_iommu >> is set and page table is not shared. >> I have doubts: >> Is it correct to just force need_iommu flag? > > No, I don't think so. This is a waste of a measurable amount of > resources when page tables aren't shared. > >> Or maybe another flag should be introduced? > > Not sure what you think of here. Where's the problem with building > IOMMU page tables at the time the first device gets assigned, just > like x86 does? OK, I have already had a look at arch_iommu_populate_page_table() for x86. I don't know at the moment how this solution can help me. There are a least two points the prevent me from doing the similar thing. 1. For create IOMMU mapping I need both mfn and gfn. (+ flags). I am able to get mfn only. How can I find corresponding gfn? 2. The d->page_list seems only contains domain RAM (not 100% sure). Where can I get other regions (mmios, etc)? > >> Or we don't need to check for need_iommu flag before updating IOMMU >> mapping in P2M code, maybe iommu_enabled would be enough? > > No, afaict that would again mean maintaining IOMMU page tables > regardless of whether they're needed. > >> 2. >> I need: >> Allow IOMMU driver to be ready to handle IOMMU mapping updates from >> the first "p2m_set_entry". > > Why (see also the question above)? I explained above. Unfortunately, I don't see how can I get all iova-to-pa mapping that took place for this domain from the start on ARM. > >> I do: >> I always allocate IOMMU page table during iommu_domain_init() for every >> domain even this domain won't have any assigned devices in future. I >> don't wait for iommu_construct. >> I have doubts: >> Is it correct? It might be just wasting memory and CPU time if domain >> doesn't have any assigned devices in future. > > Indeed. > > Jan > -- Regards, Oleksandr Tyshchenko _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |