> Subject: Re: [RFC PATCH v5 01/16] RDMA/irdma: Add driver framework > definitions > > On Tue, Apr 21, 2020 at 12:23:45AM +0000, Saleem, Shiraz wrote: > > > Subject: Re: [RFC PATCH v5 01/16] RDMA/irdma: Add driver framework > > > definitions > > > > > > On Fri, Apr 17, 2020 at 10:12:36AM -0700, Jeff Kirsher wrote: > > > > From: Mustafa Ismail <mustafa.ismail@xxxxxxxxx> > > > > > > > > Register irdma as a virtbus driver capable of supporting virtbus > > > > devices from multi-generation RDMA capable Intel HW. Establish the > > > > interface with all supported netdev peer drivers and initialize HW. > > > > > > > > Signed-off-by: Mustafa Ismail <mustafa.ismail@xxxxxxxxx> > > > > Signed-off-by: Shiraz Saleem <shiraz.saleem@xxxxxxxxx> > > > > drivers/infiniband/hw/irdma/i40iw_if.c | 228 ++++++++++ > > > > drivers/infiniband/hw/irdma/irdma_if.c | 449 ++++++++++++++++++ > > > > drivers/infiniband/hw/irdma/main.c | 573 +++++++++++++++++++++++ > > > > drivers/infiniband/hw/irdma/main.h | 599 > +++++++++++++++++++++++++ > > > > 4 files changed, 1849 insertions(+) create mode 100644 > > > > drivers/infiniband/hw/irdma/i40iw_if.c > > > > create mode 100644 drivers/infiniband/hw/irdma/irdma_if.c > > > > create mode 100644 drivers/infiniband/hw/irdma/main.c > > > > create mode 100644 drivers/infiniband/hw/irdma/main.h > > > > > > > > > > I didn't look in too much details, but three things caught my attention > immediately: > > > 1. Existence of ARP cache management logic in RDMA driver. > > > > Our HW has an independent ARP table for the rdma block. > > driver needs to add an ARP table entry via an rdma admin queue command > > before QP transitions to RTS. > > > > > 2. Extensive use of dev_*() prints while we have ibdev_*() prints > > The ib device object is not available till the end of the device init > > similarly its unavailable early on in device deinit flows. So dev_* is > > all we can use in those places. > > hns guys were thinking about changing this. It looks fine to just move the name > assignment to the device allocation, then we don't have this weirdness Did you mean moving name setting from ib_register_device to ib_device_alloc? Will that work ok for how rvt is handling the names in rvt_set_ibdev_name and its register? This could migrate a lot of the dev_* to ibdev_* but there is still going to be a handful of dev_* usages from our HW initialization in irdma_prob_dev since ib device allocation is done in irdma_open. > > Alternatively, you could do as netdev does and have a special name string when > the name is NULL Not sure I found what your referring to. Did you mean similar to use of netdev_name in __netdev_printk? > > Either way, I feel like this should be fixed up it is very fragile to have two different > print functions running around. > > Jason