linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/17] IB/Verbs: IB Management Helpers
@ 2015-04-07 12:25 Michael Wang
  2015-04-07 12:28 ` [PATCH 01/17] IB/Verbs: Implement new callback query_transport() for each HW Michael Wang
                   ` (18 more replies)
  0 siblings, 19 replies; 83+ messages in thread
From: Michael Wang @ 2015-04-07 12:25 UTC (permalink / raw)
  To: Roland Dreier, Sean Hefty, linux-rdma, linux-kernel, linux-nfs, netdev
  Cc: Michael Wang, Hal Rosenstock, Tom Tucker, Steve Wise,
	Hoang-Nam Nguyen, Christoph Raisch, Mike Marciniszyn, Eli Cohen,
	Faisal Latif, Upinder Malhi, Trond Myklebust, J. Bruce Fields,
	David S. Miller, Ira Weiny, PJ Waskiewicz, Tatyana Nikolova,
	Or Gerlitz, Jack Morgenstein, Haggai Eran, Ilya Nelkenbaum,
	Yann Droneaud, Bart Van Assche, Shachar Raindel, Sagi Grimberg,
	Devesh Sharma, Matan Barak, Moni Shoua, Jiri Kosina,
	Selvin Xavier, Mitesh Ahuja, Li RongQing, Rasmus Villemoes,
	Alex Estrin, Doug Ledford, Eric Dumazet, Erez Shitrit,
	Tom Gundersen, Chuck Lever


Since v1:
  * Apply suggestions from Doug, Ira, Jason, Tom, thanks for the comments :-)
    and please remind me if I missed anything :-P
  * Adopt new callback query_transport() to directly get the transport type
    of device
  * Reform a lot to adopt new management helpers, cleanup the old helpers

There are plenty of lengthy code to check the transport type of IB device,
or the link layer type of it's port, but actually we are just speculating
whether a particular management/feature is supported by the device/port.

Thus instead of inferring, we should have our own mechanism for IB management
capability/protocol/feature checking, several proposals below.

This patch set will reform the method of getting transport type, we will
now using query_transport() instead of inferring from transport and link
layer respectively, also we defined the new transport type to make the
concept more reasonable.

Mapping List:
		node-type	link-layer	old-transport	new-transport
nes		RNIC		ETH		IWARP		IWARP
amso1100	RNIC		ETH		IWARP		IWARP
cxgb3   	RNIC		ETH		IWARP		IWARP
cxgb4   	RNIC		ETH		IWARP		IWARP
usnic   	USNIC_UDP	ETH		USNIC_UDP	USNIC_UDP
ocrdma  	IB_CA		ETH		IB		IBOE
mlx4    	IB_CA		IB/ETH		IB		IB/IBOE
mlx5    	IB_CA		IB		IB		IB
ehca    	IB_CA		IB		IB		IB
ipath   	IB_CA		IB		IB		IB
mthca   	IB_CA		IB		IB		IB
qib     	IB_CA		IB		IB		IB

For example:
	if (transport == IB) && (link-layer == ETH)
will now become:
	if (query_transport() == IBOE)

Thus we will be able to get rid of the respective transport and link-layer
checking, and it will help us to add new protocol/Technology (like OPA) more
easier, also with the introduced management helpers, IB management logical
will be more clear and easier for extending.

TODO:
    The patch set covered a wide range of IB stuff, thus for those who are
    familiar with the particular part, your suggestion would be invaluable ;-)

    Patches haven't been tested yet, we appreciate if any one who have these
    HW willing to provide his Tested-by :-)

Proposals:
    Sean:
	https://www.mail-archive.com/linux-rdma@vger.kernel.org/msg23339.html
    Doug:
	https://www.mail-archive.com/linux-rdma@vger.kernel.org/msg23418.html
    Jason:
	https://www.mail-archive.com/linux-rdma@vger.kernel.org/msg23425.html

Michael Wang (17):
    [PATCH v2 01/17] IB/Verbs: Implement new callback query_transport() for each HW
    [PATCH v2 02/17] IB/Verbs: Implement raw management helpers
    [PATCH v2 03/17] IB/Verbs: Use management helper cap_ib_mad() for mad-check
    [PATCH v2 04/17] IB/Verbs: Use management helper cap_ib_smi() for smi-check
    [PATCH v2 05/17] IB/Verbs: Use management helper cap_ib_cm() for cm-check
    [PATCH v2 06/17] IB/Verbs: Use management helper cap_ib_sa() for sa-check
    [PATCH v2 07/17] IB/Verbs: Use management helper cap_ib_mcast() for mcast-check
    [PATCH v2 08/17] IB/Verbs: Use management helper cap_ipoib() for ipoib-check
    [PATCH v2 09/17] IB/Verbs: Use helper cap_read_multi_sge() and reform svc_rdma_accept()
    [PATCH v2 10/17] IB/Verbs: Adopt management helpers for IB helpers
    [PATCH v2 11/17] IB/Verbs: Reform link_layer_show() and ib_uverbs_query_port()
    [PATCH v2 12/17] IB/Verbs: Use management helper cap_ib_cm_dev() for cm-device-check
    [PATCH v2 13/17] IB/Verbs: Reform cma/ucma with management helpers
    [PATCH v2 14/17] IB/Verbs: Reserve legacy transport type for 'struct rdma_dev_addr'
    [PATCH v2 15/17] IB/Verbs: Reform cma_acquire_dev() with management helpers
    [PATCH v2 16/17] IB/Verbs: Cleanup rdma_node_get_transport()
    [PATCH v2 17/17] IB/Verbs: Move rdma_port_get_link_layer() to mlx4 head file

---
 drivers/infiniband/core/agent.c              |    2 
 drivers/infiniband/core/cm.c                 |   22 +-
 drivers/infiniband/core/cma.c                |  281 ++++++++++++---------------
 drivers/infiniband/core/device.c             |    1 
 drivers/infiniband/core/mad.c                |   20 -
 drivers/infiniband/core/multicast.c          |   12 -
 drivers/infiniband/core/sa_query.c           |   29 +-
 drivers/infiniband/core/sysfs.c              |    8 
 drivers/infiniband/core/ucm.c                |    3 
 drivers/infiniband/core/ucma.c               |   25 --
 drivers/infiniband/core/user_mad.c           |   26 +-
 drivers/infiniband/core/uverbs_cmd.c         |    6 
 drivers/infiniband/core/verbs.c              |   51 ----
 drivers/infiniband/hw/amso1100/c2_provider.c |    7 
 drivers/infiniband/hw/cxgb3/iwch_provider.c  |    7 
 drivers/infiniband/hw/cxgb4/provider.c       |    7 
 drivers/infiniband/hw/ehca/ehca_hca.c        |    6 
 drivers/infiniband/hw/ehca/ehca_iverbs.h     |    3 
 drivers/infiniband/hw/ehca/ehca_main.c       |    1 
 drivers/infiniband/hw/ipath/ipath_verbs.c    |    7 
 drivers/infiniband/hw/mlx4/main.c            |   10 
 drivers/infiniband/hw/mlx4/mlx4_ib.h         |    8 
 drivers/infiniband/hw/mlx5/main.c            |    7 
 drivers/infiniband/hw/mthca/mthca_provider.c |    7 
 drivers/infiniband/hw/nes/nes_verbs.c        |    6 
 drivers/infiniband/hw/ocrdma/ocrdma_main.c   |    1 
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c  |    6 
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.h  |    3 
 drivers/infiniband/hw/qib/qib_verbs.c        |    7 
 drivers/infiniband/hw/usnic/usnic_ib_main.c  |    1 
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c |    6 
 drivers/infiniband/hw/usnic/usnic_ib_verbs.h |    2 
 drivers/infiniband/ulp/ipoib/ipoib_main.c    |   17 -
 include/rdma/ib_verbs.h                      |  163 ++++++++++++++-
 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c      |    4 
 net/sunrpc/xprtrdma/svc_rdma_transport.c     |   12 -
 36 files changed, 490 insertions(+), 294 deletions(-)

^ permalink raw reply	[flat|nested] 83+ messages in thread

end of thread, other threads:[~2015-04-13  7:40 UTC | newest]

Thread overview: 83+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-07 12:25 [PATCH v2 00/17] IB/Verbs: IB Management Helpers Michael Wang
2015-04-07 12:28 ` [PATCH 01/17] IB/Verbs: Implement new callback query_transport() for each HW Michael Wang
2015-04-07 12:44   ` Michael Wang
2015-04-07 12:29 ` [PATCH v2 02/17] IB/Verbs: Implement raw management helpers Michael Wang
2015-04-07 21:25   ` Hefty, Sean
2015-04-08  8:41     ` Michael Wang
2015-04-07 12:30 ` [PATCH v2 03/17] IB/Verbs: Use management helper cap_ib_mad() for mad-check Michael Wang
2015-04-07 17:26   ` Jason Gunthorpe
2015-04-08  8:13     ` Michael Wang
2015-04-07 12:31 ` [PATCH v2 04/17] IB/Verbs: Use management helper cap_ib_smi() for smi-check Michael Wang
2015-04-07 12:32 ` [PATCH v2 05/17] IB/Verbs: Use management helper cap_ib_cm() for cm-check Michael Wang
2015-04-07 12:32 ` [PATCH v2 06/17] IB/Verbs: Use management helper cap_ib_sa() for sa-check Michael Wang
2015-04-07 12:33 ` [PATCH v2 07/17] IB/Verbs: Use management helper cap_ib_mcast() for mcast-check Michael Wang
2015-04-07 12:34 ` [PATCH v2 08/17] IB/Verbs: Use management helper cap_ipoib() for ipoib-check Michael Wang
2015-04-07 12:34 ` [PATCH v2 09/17] IB/Verbs: Use helper cap_read_multi_sge() and reform svc_rdma_accept() Michael Wang
2015-04-07 15:46   ` Tom Talpey
2015-04-07 16:05     ` Michael Wang
2015-04-07 17:42     ` Jason Gunthorpe
2015-04-08  8:51       ` Michael Wang
2015-04-07 12:35 ` [PATCH v2 10/17] IB/Verbs: Adopt management helpers for IB helpers Michael Wang
2015-04-07 18:40   ` Hefty, Sean
2015-04-08  8:24     ` Michael Wang
2015-04-07 20:12   ` Jason Gunthorpe
2015-04-07 20:16     ` Steve Wise
2015-04-08  8:28       ` Michael Wang
2015-04-09  5:36       ` ira.weiny
2015-04-07 20:18     ` Hefty, Sean
2015-04-07 12:36 ` [PATCH v2 11/17] IB/Verbs: Reform link_layer_show() and ib_uverbs_query_port() Michael Wang
2015-04-07 18:49   ` Hefty, Sean
2015-04-07 18:56     ` Steve Wise
2015-04-08  8:29     ` Michael Wang
2015-04-07 12:36 ` [PATCH v2 12/17] IB/Verbs: Use management helper cap_ib_cm_dev() for cm-device-check Michael Wang
2015-04-07 12:37 ` [PATCH v2 13/17] IB/Verbs: Reform cma/ucma with management helpers Michael Wang
2015-04-07 21:11   ` Steve Wise
2015-04-08  8:39     ` Michael Wang
2015-04-07 21:36   ` Hefty, Sean
2015-04-08  9:37     ` Michael Wang
2015-04-08 17:02       ` Hefty, Sean
2015-04-09  8:05         ` Michael Wang
2015-04-07 12:38 ` [PATCH v2 14/17] IB/Verbs: Reserve legacy transport type for 'struct rdma_dev_addr' Michael Wang
2015-04-07 12:38 ` [PATCH v2 15/17] IB/Verbs: Reform cma_acquire_dev() with management helpers Michael Wang
2015-04-07 12:39 ` [PATCH v2 16/17] IB/Verbs: Cleanup rdma_node_get_transport() Michael Wang
2015-04-07 12:39 ` [PATCH v2 17/17] IB/Verbs: Move rdma_port_get_link_layer() to mlx4 head file Michael Wang
2015-04-07 12:42 ` [PATCH v2 01/17] IB/Verbs: Implement new callback query_transport() for each HW Michael Wang
2015-04-08 18:29   ` Doug Ledford
2015-04-08 18:41     ` Hefty, Sean
2015-04-08 19:35       ` Jason Gunthorpe
2015-04-08 20:10     ` Jason Gunthorpe
2015-04-08 20:55       ` Tom Talpey
2015-04-09  9:45       ` Michael Wang
2015-04-09 12:42       ` Michael Wang
2015-04-09 16:00         ` Jason Gunthorpe
2015-04-10  8:19           ` Michael Wang
2015-04-09 14:34       ` Doug Ledford
2015-04-09 16:01         ` Jason Gunthorpe
2015-04-09 21:19           ` Doug Ledford
2015-04-09 21:36             ` Jason Gunthorpe
2015-04-10  7:46             ` Michael Wang
2015-04-10 16:48               ` Doug Ledford
2015-04-10  6:16       ` ira.weiny
2015-04-10  8:25         ` Michael Wang
2015-04-10 14:56           ` ira.weiny
2015-04-10 16:15         ` Jason Gunthorpe
2015-04-10 17:38           ` ira.weiny
2015-04-10 17:49             ` Doug Ledford
2015-04-10 18:11               ` ira.weiny
2015-04-10 18:04             ` Jason Gunthorpe
2015-04-10 18:24               ` Doug Ledford
2015-04-10 19:17                 ` Jason Gunthorpe
2015-04-10 21:06                   ` ira.weiny
2015-04-11  0:01                     ` Tom Talpey
2015-04-10 20:38               ` ira.weiny
2015-04-09  9:34     ` Michael Wang
2015-04-10  7:48     ` ira.weiny
2015-04-10 17:10       ` Doug Ledford
2015-04-10 17:36         ` Jason Gunthorpe
2015-04-13  7:40           ` Michael Wang
2015-04-10 17:50         ` Tom Talpey
2015-04-10 18:17           ` Doug Ledford
2015-04-08 11:38 ` [PATCH v2 00/17] IB/Verbs: IB Management Helpers Tom Talpey
2015-04-08 12:41   ` Michael Wang
2015-04-08 15:51     ` Jason Gunthorpe
2015-04-08 16:05       ` Michael Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).