Re: [PATCH 4/5] intel-iommu: Reinstate RMRRs if a device isremoved from passthrough domain

From: David Woodhouse
Date: Wed Oct 28 2009 - 10:37:17 EST


On Tue, 2009-10-27 at 09:50 -0600, Alex Williamson wrote:
> On Tue, 2009-10-27 at 08:15 +0000, David Woodhouse wrote:
> > On Mon, 2009-10-26 at 17:25 -0600, Alex Williamson wrote:
> > > When a device is setup for passthrough it has full access to memory
> > > so processing the RMRRs is unnecessary. However, if we remove the device
> > > from the si_domain, we need to reinstate the associated RMRRs.
> > >
> > > Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
> >
> > If your device is doing DMA to host memory autonomously, you may still
> > have problems with this patch -- you take it out of the si_domain and
> > then there's a period of time before you reapply the RMRRs, during which
> > its DMA may be prevented.
> >
> > You want to set up the new domain first, then switch the device over to
> > it atomically.
>
> Yes, good point. I'm not seeing any convenient ways to setup a new
> domain for a device while it's still a member of the si_domain. It
> looks like I'd need to extract parts of the get_valid_domain_for_dev()
> path and ignore any bits about using the already existing domain.

That seems like a sane plan. That code wants cleaning up anyway, and
factoring out the 'make new domain' part of get_valid_domain_for_dev()
should be simple enough.

--
dwmw2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/