[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Patch RFC 00/13] VT-d Asynchronous Device-TLB Flush for ATS Device
>>> On 09.10.15 at 09:06, <quan.xu@xxxxxxxxx> wrote: >> > >>>On 08.10.2015 at 16:52 <JBeulich@xxxxxxxx> wrote: >> >>> On 07.10.15 at 19:02, <quan.xu@xxxxxxxxx> wrote: >> > Q3: what to do about mappings of other domains' memory (i.e. grant and >> > foreign mappings). >> > Between two domains, now I have only one idea to fix this tricky >> > issue -- waitqueue. >> > I.e. grant. >> > For gnttab_transfer /gnttab_unmap , wait on a waitqueue before >> > updating grant flag, until the Device-TLB flush is completed. >> > For grant-mapped, it is safe as the modification of gnttab_unmap. >> >> Hmm, wouldn't grant transfers already be taken care of by the extra >> references? >> See steal_page(). Perhaps the ordering between its invocation and >> guest_physmap_remove_page() would need to be switched (with the latter >> getting undone if steal_page() fails). The waiting for the flush to complete >> could - >> afaics - be done by using the grant-ops' inherent batching (and hence easy >> availability of continuations). But I admit there's some hand waiving here >> without >> closer inspection... > > I think the extra references can NOT fix the security issue between two > domains. > i.e. If domA transfers the ownership of a page to domB, but the domA still > take extra references of the page. I think it is not correct. Again - see steal_page(): Pages with references beyond the single allocation related one can't change ownership. >> > __scheme B__ >> > Q1: - when to take the references? >> > >> > take the reference when the IOMMU entry is _ removed/overwritten_; >> > in detail: >> > --iommu_unmap_page(), or >> > --ept_set_entry() [Once IOMMU shares EPT page table.] >> > >> > * Make sure IOMMU page should not be reallocated for >> > another purpose until the appropriate invalidations have been >> > performed. >> > * in this case, it does not matter hot-plug ATS device >> > pass-through or ATS device assigned in domain initialization. >> > >> > Q2 / Q3: >> > The same as above __scheme A__ Q2/Q3. >> > >> > One question: is __scheme B__ safe? If it is safe, I prefer __scheme B__.. >> >> While at the first glance this looks like a neat idea - > > > I think this is safe and a good solution. > I hope you can review into the __scheme B__. I need _Acked-by_ you and Tim > Deegan. What do you mean here? I'm not going to ack a patch that hasn't even got written, and while scheme B looks possible, I might still overlook something, so I also can't up front ack that model (which may then lead to you expecting that once implemented it gets accepted). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |