lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9DD61F30A802C4429A01CA4200E302A7DCD4DB92@fmsmsx124.amr.corp.intel.com>
Date:   Thu, 23 Apr 2020 00:32:48 +0000
From:   "Saleem, Shiraz" <shiraz.saleem@...el.com>
To:     Jason Gunthorpe <jgg@...pe.ca>
CC:     Leon Romanovsky <leon@...nel.org>,
        "Kirsher, Jeffrey T" <jeffrey.t.kirsher@...el.com>,
        "gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
        "Ismail, Mustafa" <mustafa.ismail@...el.com>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
        "nhorman@...hat.com" <nhorman@...hat.com>,
        "sassmann@...hat.com" <sassmann@...hat.com>
Subject: RE: [RFC PATCH v5 01/16] RDMA/irdma: Add driver framework
 definitions

> Subject: Re: [RFC PATCH v5 01/16] RDMA/irdma: Add driver framework
> definitions
> 
> On Tue, Apr 21, 2020 at 06:19:07PM +0000, Saleem, Shiraz wrote:
> > > 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@...el.com>
> > > > > >
> > > > > > 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@...el.com>
> > > > > > Signed-off-by: Shiraz Saleem <shiraz.saleem@...el.com>
> > > > > > 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?
> 
> I don't see why not? rvt_set_ibdev_name is always directly after rvt_alloc_device,
> which is the thing that calls ib_alloc_device
> 
> > 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.
> 
> Don't do that?

we have a split initialization design for gen2 and future products.
phase1 is control path resource initialization in irdma_probe_dev
and phase-2 is the rest of the resources with the ib registration
at the end of irdma_open. irdma_close must de-register the ib device
which will take care of ibdev free too. So it makes sense to keep
allocation of the ib device in irdma_open.

Is it so bad to use dev_* prints for a few of those init stuff in
irdma_probe_dev when ib device is unavailable? Isnt that what all drivers
are expected to do? similar to the rule of using dev_* when struct device
object is available, otherwise pr_*

> 
> > > 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?
> 
> Yes
 
OK. Thanks!

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ