RE: [PATCH rdma-next v3 00/20] RDMA: Add support for ib_device_ops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: linux-rdma-owner@xxxxxxxxxxxxxxx <linux-rdma-
> owner@xxxxxxxxxxxxxxx> On Behalf Of Kamal Heib
> Sent: Monday, November 5, 2018 5:35 AM
> To: Doug Ledford <dledford@xxxxxxxxxx>; Jason Gunthorpe <jgg@xxxxxxxx>
> Cc: linux-rdma@xxxxxxxxxxxxxxx; kamalheib1@xxxxxxxxx
> Subject: [PATCH rdma-next v3 00/20] RDMA: Add support for ib_device_ops
> 
> This patchset introduce a new structure that will contain all the infiniband
> device operations, the structure will be used by the providers to initialize
> their supported operations. This patchset also includes the required changes
> in the core and ulps to start using it.
> 
> Changes from v2:
> * Sort the operations based on logical groups.
> * Add patch 18 for fixing rvt_create_ah prototype.
> * Add patch 19 for initialize ib_device_ops struct.
> 
> Changes from V1:
> * Rebase.
> * Constify the ib_device_ops.
> * Remove vertical white spaces.
> * Clang-format ib_device_ops struct.
> * Return the descriptive comments into ib_device_ops struct.
> * Move the assignment of the ib_device operations to the last patch in
>   the patchset.
> * Remove the existing method assignment at the same time of initializing
>   the ib_device_ops.
> 
> Thanks,
> Kamal
> 
> Kamal Heib (20):
>   RDMA/core: Introduce ib_device_ops
>   RDMA/bnxt_re: Initialize ib_device_ops struct
>   RDMA/cxgb3: Initialize ib_device_ops struct
>   RDMA/cxgb4: Initialize ib_device_ops struct
>   RDMA/hfi1: Initialize ib_device_ops struct
>   RDMA/hns: Initialize ib_device_ops struct
>   RDMA/i40iw: Initialize ib_device_ops struct
>   RDMA/mlx4: Initialize ib_device_ops struct
>   RDMA/mlx5: Initialize ib_device_ops struct
>   RDMA/mthca: Initialize ib_device_ops struct
>   RDMA/nes: Initialize ib_device_ops struct
>   RDMA/ocrdma: Initialize ib_device_ops struct
>   RDMA/qedr: Initialize ib_device_ops struct
>   RDMA/qib: Initialize ib_device_ops struct
>   RDMA/usnic: Initialize ib_device_ops struct
>   RDMA/vmw_pvrdma: Initialize ib_device_ops struct
>   RDMA/rxe: Initialize ib_device_ops struct
>   RDMA/rdmavt: Fix rvt_create_ah prototype
>   RDMA/rdmavt: Initialize ib_device_ops struct
>   RDMA: Start use ib_device_ops
> 
>  drivers/infiniband/core/cache.c                    |  12 +-
>  drivers/infiniband/core/core_priv.h                |  12 +-
>  drivers/infiniband/core/cq.c                       |   6 +-
>  drivers/infiniband/core/device.c                   | 136 ++++-
>  drivers/infiniband/core/fmr_pool.c                 |   4 +-
>  drivers/infiniband/core/mad.c                      |  24 +-
>  drivers/infiniband/core/nldev.c                    |   4 +-
>  drivers/infiniband/core/opa_smi.h                  |   4 +-
>  drivers/infiniband/core/rdma_core.c                |   6 +-
>  drivers/infiniband/core/security.c                 |   8 +-
>  drivers/infiniband/core/smi.h                      |   4 +-
>  drivers/infiniband/core/sysfs.c                    |  28 +-
>  drivers/infiniband/core/ucm.c                      |   2 +-
>  drivers/infiniband/core/uverbs_cmd.c               |  64 +--
>  drivers/infiniband/core/uverbs_main.c              |  14 +-
>  drivers/infiniband/core/uverbs_std_types.c         |   2 +-
>  .../infiniband/core/uverbs_std_types_counters.c    |  10 +-
>  drivers/infiniband/core/uverbs_std_types_cq.c      |   4 +-
>  drivers/infiniband/core/uverbs_std_types_dm.c      |   6 +-
>  .../infiniband/core/uverbs_std_types_flow_action.c |  14 +-
>  drivers/infiniband/core/uverbs_std_types_mr.c      |   4 +-
>  drivers/infiniband/core/verbs.c                    | 149 +++---
>  drivers/infiniband/hw/bnxt_re/main.c               | 107 ++--
>  drivers/infiniband/hw/cxgb3/iwch_provider.c        |  75 +--
>  drivers/infiniband/hw/cxgb4/provider.c             |  86 ++--
>  drivers/infiniband/hw/hfi1/verbs.c                 |  23 +-
>  drivers/infiniband/hw/hns/hns_roce_device.h        |   1 +
>  drivers/infiniband/hw/hns/hns_roce_hw_v1.c         |  13 +
>  drivers/infiniband/hw/hns/hns_roce_hw_v2.c         |  13 +
>  drivers/infiniband/hw/hns/hns_roce_main.c          | 112 +++--
>  drivers/infiniband/hw/i40iw/i40iw_cm.c             |   2 +-
>  drivers/infiniband/hw/i40iw/i40iw_verbs.c          |  76 +--
>  drivers/infiniband/hw/mlx4/alias_GUID.c            |   2 +-
>  drivers/infiniband/hw/mlx4/main.c                  | 191 ++++---
>  drivers/infiniband/hw/mlx5/main.c                  | 237 +++++----
>  drivers/infiniband/hw/mthca/mthca_provider.c       | 151 ++++--
>  drivers/infiniband/hw/nes/nes_cm.c                 |   2 +-
>  drivers/infiniband/hw/nes/nes_verbs.c              |  77 +--
>  drivers/infiniband/hw/ocrdma/ocrdma_main.c         | 102 ++--
>  drivers/infiniband/hw/qedr/main.c                  | 114 +++--
>  drivers/infiniband/hw/qib/qib_verbs.c              |  10 +-
>  drivers/infiniband/hw/usnic/usnic_ib_main.c        |  71 +--
>  drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c     |  92 ++--
>  drivers/infiniband/sw/rdmavt/ah.c                  |   4 +-
>  drivers/infiniband/sw/rdmavt/ah.h                  |   3 +-
>  drivers/infiniband/sw/rdmavt/vt.c                  | 312 +++---------
>  drivers/infiniband/sw/rxe/rxe_verbs.c              | 102 ++--
>  drivers/infiniband/ulp/ipoib/ipoib_main.c          |  12 +-
>  drivers/infiniband/ulp/iser/iser_memory.c          |   4 +-
>  drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c  |   8 +-
>  drivers/infiniband/ulp/srp/ib_srp.c                |   6 +-
>  fs/cifs/smbdirect.c                                |   2 +-
>  include/rdma/ib_verbs.h                            | 546 ++++++++++-----------
>  net/rds/ib.c                                       |   4 +-
>  net/sunrpc/xprtrdma/fmr_ops.c                      |   2 +-
>  55 files changed, 1654 insertions(+), 1425 deletions(-)
> 
> --
> 2.14.5

Sorry for the late comment for Jason's point in v2 series to have one giant structure.

With one giant structure,
fill_res_entry() provider callback function of rdma_restrack_root doesn't deserve to be inside a logically well separate structure rdma_restrack_root.
We should take out fill_res_entry() and put into ib_device_ops.

But I like the approach of rdma_restrack_root which keeps all logical entities together.
And with that good example I continue to propose same logical separate for rest of the callbacks too.
With that non hot control path routines can possibly stay outside of ib_device apart from code readability.






[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux