On Mon, Nov 21, 2022 at 05:41:48PM +0000, Jonathan Cameron wrote: > On Mon, 21 Nov 2022 14:17:37 +0000 "Zhuo, Qiuxu" <qiuxu.zhuo@xxxxxxxxx> wrote: > > It's good that this potential issue has been noticed. I think moving > > the 'find' logic and the xarray from CXL to the PCI core should save > > a lot of such duplicated works for other drivers using DOE. > > > > One more though: > > For a driver, I think it's only interested in getting a DOE mailbox > > from a PCI device with specified VID+protocol and using it. > > The driver doesn't care how is the DOE mailbox instance created and > > the driver also doesn't want to maintain it. Totally agree on all of your above points Qiuxu. > > After using the DOE mailbox instance then the driver puts it back. That won't be necessary I think. The PCI core allocates all existing DOE mailboxes and enumerates the supported protocols. Drivers just ask the PCI core for a mailbox supporting a specific protocol and are free to use that as long as the PCI device exists. > There is also a dance around interrupts (once those are supported > for DOEs in general). Until the PCI driver has requested interrupts > we can't use them for DOE, but we may want to poll it before that > stage then switch over. Thomas Gleixner has returned to his patch sets for dynamic MSI-X allocation. We'll be able to leverage that to request an interrupt in the PCI core for DOE before a driver is bound. And a driver can then get additional MSI-X vectors if needed. Will only work for MSI-X though, not MSI. Thanks, Lukas