mbox series

[v6,for-next,0/7] RDMA/bnxt_re: driver update for supporting low latency push

Message ID 1686679943-17117-1-git-send-email-selvin.xavier@broadcom.com (mailing list archive)
Headers show
Series RDMA/bnxt_re: driver update for supporting low latency push | expand

Message

Selvin Xavier June 13, 2023, 6:12 p.m. UTC
The series aims to add support for Low latency push path in
some of the bnxt devices. The low latency implementation is
supported only for the user applications. Also, the code
is modified to use  common mmap helper functions exported
by IB core. 

User library changes are in the pull request
https://github.com/linux-rdma/rdma-core/pull/1321

Please review and apply

Thanks,
Selvin Xavier

v5 -> v6:
  - Use rdma_user_mmap_entry_insert_exact in case of a hardcoded mmap 
    offset for the shared page in patch 1
  - Rebase the patches based on the above change
  - Remove unnecessary blank space from patch 7

v4 -> v5:
  - Added patch 3 to optimize bnxt_re_init_hwrm_hdr parameters
  - Avoid memset from the callers of bnxt_re_init_hwrm_hdr
  - Rebased the patches to the latest from leon-for-next

v3-> v4:
  - Remove the newly added comp_mask in the alloc_pd resp. This is
    not required after using the new UAPI mechanism.
  - Return -EINVAL if WC page mmap requested for an unsupported
    adapter.

v2-> v3:
  - Rebasing after the merge window
  - Fix the return value check in bnxt_re_hwrm_qcfg

v1 - v2:
  - Fixes the review comments from Leon and Jason
  - As suggested by Jason, implements the new uapi
    driver definitions for allocating pages in the
    driver and return the cookie for mmap


Selvin Xavier (7):
  RDMA/bnxt_re: Use the common mmap helper functions
  RDMA/bnxt_re: Add disassociate ucontext support
  RDMA/bnxt_re: Optimize the bnxt_re_init_hwrm_hdr usage
  RDMA/bnxt_re: Query function capabilities from firmware
  RDMA/bnxt_re: Move the interface version to chip context structure
  RDMA/bnxt_re: Reorg the bar mapping
  RDMA/bnxt_re: Enable low latency push

 drivers/infiniband/hw/bnxt_re/bnxt_re.h    |   3 +
 drivers/infiniband/hw/bnxt_re/ib_verbs.c   | 276 ++++++++++++++++++++++++++---
 drivers/infiniband/hw/bnxt_re/ib_verbs.h   |  19 ++
 drivers/infiniband/hw/bnxt_re/main.c       | 162 +++++++++++++----
 drivers/infiniband/hw/bnxt_re/qplib_fp.c   |   4 +-
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.h |   2 +
 drivers/infiniband/hw/bnxt_re/qplib_res.c  | 177 +++++++++++-------
 drivers/infiniband/hw/bnxt_re/qplib_res.h  |  33 +++-
 drivers/infiniband/hw/bnxt_re/qplib_sp.c   |   3 +
 drivers/infiniband/hw/bnxt_re/qplib_sp.h   |   1 +
 include/uapi/rdma/bnxt_re-abi.h            |  27 +++
 11 files changed, 577 insertions(+), 130 deletions(-)

Comments

Jason Gunthorpe June 21, 2023, 4:58 p.m. UTC | #1
On Tue, Jun 13, 2023 at 11:12:16AM -0700, Selvin Xavier wrote:
> The series aims to add support for Low latency push path in
> some of the bnxt devices. The low latency implementation is
> supported only for the user applications. Also, the code
> is modified to use  common mmap helper functions exported
> by IB core. 
> 
> User library changes are in the pull request
> https://github.com/linux-rdma/rdma-core/pull/1321
> 
> Please review and apply

It gets compile warnings:

../drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:322:18: warning: variable 'opcode' is uninitialized when used here [-Wuninitialized]
        crsqe->opcode = opcode;
                        ^~~~~~
../drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:288:11: note: initialize the variable 'opcode' to silence this warning
        u8 opcode;
                 ^
                  = '\0'

Jason
Selvin Xavier June 21, 2023, 5:03 p.m. UTC | #2
On Wed, Jun 21, 2023 at 10:28 PM Jason Gunthorpe <jgg@nvidia.com> wrote:
>
> On Tue, Jun 13, 2023 at 11:12:16AM -0700, Selvin Xavier wrote:
> > The series aims to add support for Low latency push path in
> > some of the bnxt devices. The low latency implementation is
> > supported only for the user applications. Also, the code
> > is modified to use  common mmap helper functions exported
> > by IB core.
> >
> > User library changes are in the pull request
> > https://github.com/linux-rdma/rdma-core/pull/1321
> >
> > Please review and apply
>
> It gets compile warnings:
>
> ../drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:322:18: warning: variable 'opcode' is uninitialized when used here [-Wuninitialized]
>         crsqe->opcode = opcode;
>                         ^~~~~~
> ../drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:288:11: note: initialize the variable 'opcode' to silence this warning
>         u8 opcode;
>                  ^
>                   = '\0'
>
Hi Jason,
 Leon already fixed this. This was introduced by the last series that
got merged.
https://lore.kernel.org/r/6ad1e44be2b560986da6fdc6b68da606413e9026.1686644105.git.leonro@nvidia.com

thanks,
Selvin

> Jason
Jason Gunthorpe June 21, 2023, 5:12 p.m. UTC | #3
On Wed, Jun 21, 2023 at 10:33:45PM +0530, Selvin Xavier wrote:
> On Wed, Jun 21, 2023 at 10:28 PM Jason Gunthorpe <jgg@nvidia.com> wrote:
> >
> > On Tue, Jun 13, 2023 at 11:12:16AM -0700, Selvin Xavier wrote:
> > > The series aims to add support for Low latency push path in
> > > some of the bnxt devices. The low latency implementation is
> > > supported only for the user applications. Also, the code
> > > is modified to use  common mmap helper functions exported
> > > by IB core.
> > >
> > > User library changes are in the pull request
> > > https://github.com/linux-rdma/rdma-core/pull/1321
> > >
> > > Please review and apply
> >
> > It gets compile warnings:
> >
> > ../drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:322:18: warning: variable 'opcode' is uninitialized when used here [-Wuninitialized]
> >         crsqe->opcode = opcode;
> >                         ^~~~~~
> > ../drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:288:11: note: initialize the variable 'opcode' to silence this warning
> >         u8 opcode;
> >                  ^
> >                   = '\0'
> >
> Hi Jason,
>  Leon already fixed this. This was introduced by the last series that
> got merged.
> https://lore.kernel.org/r/6ad1e44be2b560986da6fdc6b68da606413e9026.1686644105.git.leonro@nvidia.com

Oh, some patches got misplaced, I fixed it up..

Okay, applied to for-next

Thanks,
Jason
Selvin Xavier June 21, 2023, 5:19 p.m. UTC | #4
On Wed, Jun 21, 2023 at 10:42 PM Jason Gunthorpe <jgg@nvidia.com> wrote:
>
> On Wed, Jun 21, 2023 at 10:33:45PM +0530, Selvin Xavier wrote:
> > On Wed, Jun 21, 2023 at 10:28 PM Jason Gunthorpe <jgg@nvidia.com> wrote:
> > >
> > > On Tue, Jun 13, 2023 at 11:12:16AM -0700, Selvin Xavier wrote:
> > > > The series aims to add support for Low latency push path in
> > > > some of the bnxt devices. The low latency implementation is
> > > > supported only for the user applications. Also, the code
> > > > is modified to use  common mmap helper functions exported
> > > > by IB core.
> > > >
> > > > User library changes are in the pull request
> > > > https://github.com/linux-rdma/rdma-core/pull/1321
> > > >
> > > > Please review and apply
> > >
> > > It gets compile warnings:
> > >
> > > ../drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:322:18: warning: variable 'opcode' is uninitialized when used here [-Wuninitialized]
> > >         crsqe->opcode = opcode;
> > >                         ^~~~~~
> > > ../drivers/infiniband/hw/bnxt_re/qplib_rcfw.c:288:11: note: initialize the variable 'opcode' to silence this warning
> > >         u8 opcode;
> > >                  ^
> > >                   = '\0'
> > >
> > Hi Jason,
> >  Leon already fixed this. This was introduced by the last series that
> > got merged.
> > https://lore.kernel.org/r/6ad1e44be2b560986da6fdc6b68da606413e9026.1686644105.git.leonro@nvidia.com
>
> Oh, some patches got misplaced, I fixed it up..
>
> Okay, applied to for-next
Thank you.
>
> Thanks,
> Jason