On Wed, Jan 27, 2021 at 12:42:09AM +0000, Saleem, Shiraz wrote: > > It does, the PCI driver is not supposed to spawn any aux devices for RDMA at all > > if RDMA is disabled. > > > > For an iWarp driver I would consider ENABLE_ROCE to really be a general > > ENABLE_RDMA. > > Well the driver supports iWARP and RoCE for E810 device. > Are you saying that this generic enable_roce devlink param really > is an enable 'rdma' traffic or not param? I've thought of it that way, that is what it was created for at least. Overloading it to be a iwarp not roce switch feels wrong > > Are you sure you need to implement this? > > What we are after is some mechanism for user to switch the protocols iWARP vs RoCE > [default the device comes up as an iWARP dev]. The protocol info is really needed early-on > in the RDMA driver.probe(). i.e. when the rdma admin queue is created. This needs to be a pci devlink at least, some kind of mode switch seems appropriate > The same goes with the other param resource_limits_selector. It's a > profile selector that a user can chose to different # of max QP, > CQs, MRs etc. And it must be done at init time? Also seems like pci devlink Generally speaking anything that requires the rdma driver to be reloaded should remove/restore the aux device. Mode switch from roce to/from iwarp should create aux devices of different names which naturally triggers the right kind of sequences in the driver core Jason