On Mon, 2023-01-30 at 11:29 -0400, Jason Gunthorpe wrote: > On Mon, Jan 30, 2023 at 03:13:22PM +0000, Robin Murphy wrote: > > > Either way, the more I think about this the more I'm starting to agree that > > adding more domain types for iommu-dma policy is a step in the wrong > > direction. If I may, I'd like to fall back on the "or at least some definite > > internal flag" part of my original suggestion :) > > Yes please, lets try to remove IOMMU_DOMAIN_DMA, not add more :) > > At this point we should probably just sort of hackily add a ops flag > to indicate single queue and when we fixup the policy logic we can > make it a user selectable policy as well. > > Jason Ok yeah I did like the policy idea you brought up a while back. If we want to do the conversion to dma-iommu before that we do need an interim solution though. So if I'm reading your ops flag idea right I think it could even re-use much of the logic in this series and just not introduce a new domain type. I'm wondering if maybe instead of plain flag bits it makes more sense to have a dma_iommu_options struct that contains the queue size and a flags value which indicates whether a single or per-CPU queue is used. Then I could add an iommu_ops callback that takes a device and a pointer to the dma_iommu_options. That way we can still set the options per device but don't need a whole extra domain type. This callback would then just be called during initialization of the DMA-FQ domain and not having the callback just leaves the defaults unchanged. Does that go in the right direction? Thanks, Niklas