On Thu, Aug 06, 2020 at 12:32:31AM +0000, Dey, Megha wrote: > > Oops, I was thinking of platform_msi_domain_alloc_irqs() not > > create_device_domain() > > > > ie call it in the device driver that wishes to consume the extra MSIs. > > > > Is there a harm if each device driver creates a new irq_domain for its use? > > Well, the only harm is if we want to reuse the irq domain. > > As of today, we only have DSA mdev which uses the dev-msi domain. In the IRQ domain hierarchy, > We will have this: > > Vector-> intel-ir->dev-msi > > So tmrw if we have a new device, which would also want to have the > intel-ir as the parent and use the same domain ops, we will simply > be creating a copy of this IRQ domain, which may not be very > fruitful. > > But apart from that, I don't think there are any issues.. > > What do you think is the best approach here? I've surely forgotten these details, I can't advise if duplicate irq_domains are very bad. A single domain per parent irq_domain does seem more elegant, but I'm not sure it is worth the extra work to do it? In any event the API seems cleaner if it is all contained in the platform_msi and strongly connected to the driver, not spread to the iommu as well. If it had to create single dev-msi domain per parent irq_domain then it certainly could be done in a few ways. Jason