RE: [PATCH rdma-next 00/18] 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: Tuesday, October 9, 2018 1:45 PM
> To: Doug Ledford <dledford@xxxxxxxxxx>; Jason Gunthorpe <jgg@xxxxxxxx>
> Cc: linux-rdma@xxxxxxxxxxxxxxx; kamalheib1@xxxxxxxxx
> Subject: [PATCH rdma-next 00/18] 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.
> 
> Thanks,
> Kamal
> 
> Kamal Heib (18):
>   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: 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                    |  26 +--
>  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               |  97 +++++----
>  drivers/infiniband/hw/cxgb3/iwch_provider.c        |  64 +++---
>  drivers/infiniband/hw/cxgb4/provider.c             |  74 +++----
>  drivers/infiniband/hw/hfi1/verbs.c                 |  19 +-
>  drivers/infiniband/hw/hns/hns_roce_device.h        |   1 +
>  drivers/infiniband/hw/hns/hns_roce_hw_v1.c         |  11 ++
>  drivers/infiniband/hw/hns/hns_roce_hw_v2.c         |  11 ++
>  drivers/infiniband/hw/hns/hns_roce_main.c          |  91 ++++-----
>  drivers/infiniband/hw/i40iw/i40iw_cm.c             |   2 +-
>  drivers/infiniband/hw/i40iw/i40iw_verbs.c          |  66 ++++---
>  drivers/infiniband/hw/mlx4/alias_GUID.c            |   2 +-
>  drivers/infiniband/hw/mlx4/main.c                  | 166 +++++++++-------
>  drivers/infiniband/hw/mlx5/main.c                  | 220 ++++++++++++---------
>  drivers/infiniband/hw/mthca/mthca_provider.c       | 139 ++++++++-----
>  drivers/infiniband/hw/nes/nes_cm.c                 |   2 +-
>  drivers/infiniband/hw/nes/nes_verbs.c              |  66 ++++---
>  drivers/infiniband/hw/ocrdma/ocrdma_main.c         |  92 ++++-----
>  drivers/infiniband/hw/qedr/main.c                  | 103 +++++-----
>  drivers/infiniband/hw/qib/qib_verbs.c              |   8 +-
>  drivers/infiniband/hw/usnic/usnic_ib_main.c        |  61 +++---
>  drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c     |  82 ++++----
>  drivers/infiniband/sw/rdmavt/vt.c                  |  90 ++++-----
>  drivers/infiniband/sw/rxe/rxe_verbs.c              |  90 +++++----
>  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 +-
>  include/rdma/ib_verbs.h                            | 212 ++++++++------------
>  net/sunrpc/xprtrdma/fmr_ops.c                      |   2 +-
>  50 files changed, 1257 insertions(+), 1057 deletions(-)
> 
> --
> 2.14.4

I am not sure if this change is needed.
But if an ops structure is defined, there should be logical useful group should exist for the ops.

Such as
1. datapath_ops (post_send, post_recv, poll_cq, req_notify_cq), which can fall in same cacheline.
2. resource_ops(create, destroy, query, modify of qp, cq, mr, ah, srq)
3. gid_ops(query, add, del)
4. vf_ops(config_get, config_set, stats)
5. stats_ops(alloc, free, get)
This aligns to other part of kernel, one example is netdev ops (rtnl, ndo, dcbnl, vf).






[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