On Tue, Mar 27, 2012 at 01:34:43PM -0600, Alex Williamson wrote: [snip] > > > > this case, it gets a bit complex. When the FooBus isolation provider > > > > is active, the FooBus devices would be in their own groups, not the > > > > group of the FooBridge and its sibling. When the FooBus isolation > > > > provider is removed, it would have to configure the FooBus IOMMU to a > > > > passthrough mode, and revert the FooBus devices to the parent's > > > > group. Hm. Complicated. > > > > > > Yep. I think we're arriving at the same point. Groups are > > > hierarchical, but ownership via a manager cannot be nested. So to > > > manage a group, we need to walk the entire tree of devices below each > > > device checking that none of the groups are managed and all the devices > > > are using the right driver, then walk up from the group to verify no > > > group of a parent device is managed. Thanks, > > > > Blargh. I really, really hope we can come up with a simpler model > > than that. > > Yep, I'm pretty well at the end of this experiment. Honestly, I think > isolation groups are the wrong approach. We're trying to wrap too many > concepts together and it's completely unmanageable. I cannot see adding > the complexity we're talking about here to the core device model for > such a niche usage. I think we're better off going back to the > iommu_device_group() and building that out into something more complete, > starting with group based iommu ops and a dma quirk infrastructure. > >From there we can add some basic facilities to toggle driver autoprobe, > maybe setup notifications for the group, and hopefully include a way to > share iommu mappings between groups. Anything much beyond that we > should probably leave for something like the vfio driver. Thanks, Yes, well, I was hoping for a simpler model that didn't involve simply sweeping all the issues under a rug. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html