Subject: Re: [PATCH 07/22] RDMA/irdma: Register an auxiliary driver and implement private channel OPs

From: Jason Gunthorpe <[email-masked]>
Date: Tue, 26 Jan 2021 22:44:23 -0400

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