From: Steve Wise <hidden> Date: 2018-03-02 20:10:26
Hello,
This series enhances the iproute2 rdma tool to include dumping of
connection manager id (cm_id), completion queue (cq), memory region (mr),
and protection domain (pd) rdma resources. It is the user-space part of
the resource tracking series under review now on the linux-rdma list [1].
Changes since v1/RFC:
- removed RFC tag
- initialize rd properly to avoid passing a garbage port number
- revert accidental change to qp_valid_filters
- removed cm_id dev/network/transport types
- cm_id ip addrs now passed up as __kernel_sockaddr_storage
- cm_id ip address ports printed as "address:port" strings
- only parse/display memory keys and iova if available
- filter on "users" for cqs and pds
- fixed memory leaks
- removed PD_FLAGS attribute
- filter on "mrlen" for mrs
- filter on "poll-ctx" for cqs
- don't require addrs or qp_type for parsing cm_ids
- only filter optional attrs if they are present
- remove PGSIZE MR attr to match kernel
[1] https://www.spinics.net/lists/linux-rdma/msg61400.html
Thanks,
Steve.
---
Steve Wise (6):
rdma: update rdma_netlink.h
rdma: initialize the rd struct
rdma: Add CM_ID resource tracking information
rdma: Add CQ resource tracking information
rdma: Add MR resource tracking information
rdma: Add PD resource tracking information
include/json_writer.h | 2 +
include/uapi/rdma/rdma_netlink.h | 44 ++-
lib/json_writer.c | 11 +
rdma/rdma.c | 2 +-
rdma/rdma.h | 2 +
rdma/res.c | 611 ++++++++++++++++++++++++++++++++++++++-
rdma/utils.c | 16 +
7 files changed, 683 insertions(+), 5 deletions(-)
--
1.8.3.1
From: Steve Wise <hidden> Date: 2018-03-02 20:10:31
From: Steve Wise <redacted>
Pull in the latest rdma_netlink.h which has support for
the rdma nldev resource tracking objects being added
with this patch series.
Signed-off-by: Steve Wise <redacted>
---
include/uapi/rdma/rdma_netlink.h | 44 +++++++++++++++++++++++++++++++++++++---
1 file changed, 41 insertions(+), 3 deletions(-)
@@ -238,6 +238,14 @@ enum rdma_nldev_command {RDMA_NLDEV_CMD_RES_QP_GET,/* can dump */+RDMA_NLDEV_CMD_RES_CM_ID_GET,/* can dump */++RDMA_NLDEV_CMD_RES_CQ_GET,/* can dump */++RDMA_NLDEV_CMD_RES_MR_GET,/* can dump */++RDMA_NLDEV_CMD_RES_PD_GET,/* can dump */+RDMA_NLDEV_NUM_OPS};
From: Steve Wise <hidden> Date: 2018-03-02 20:10:36
Initialize the rd struct so port_idx is 0 unless set otherwise.
Otherwise, strict_port queries end up passing an uninitialized PORT
nlattr.
Signed-off-by: Steve Wise <redacted>
---
rdma/rdma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -16,9 +16,11 @@ static int res_help(struct rd *rd){pr_out("Usage: %s resource\n",rd->filename);pr_out(" resource show [DEV]\n");-pr_out(" resource show [qp]\n");+pr_out(" resource show [qp|cm_id]\n");pr_out(" resource show qp link [DEV/PORT]\n");pr_out(" resource show qp link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");+pr_out(" resource show cm_id link [DEV/PORT]\n");+pr_out(" resource show cm_id link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");return0;}
@@ -21,6 +21,8 @@ static int res_help(struct rd *rd)pr_out(" resource show qp link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");pr_out(" resource show cm_id link [DEV/PORT]\n");pr_out(" resource show cm_id link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");+pr_out(" resource show cq link [DEV/PORT]\n");+pr_out(" resource show cq link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");return0;}
From: Steve Wise <hidden> Date: 2018-03-02 20:10:56
Sample output:
Without CAP_NET_ADMIN capability:
link mlx4_0/- users 0 pid 0 comm [ib_srpt]
link mlx4_0/- users 0 pid 0 comm [ib_srp]
link mlx4_0/- users 1 pid 0 comm [ib_core]
link cxgb4_0/- users 0 pid 0 comm [ib_srp]
With CAP_NET_ADMIN capability:
link mlx4_0/- local_dma_lkey 0x8000 users 0 pid 0 comm [ib_srpt]
link mlx4_0/- local_dma_lkey 0x8000 users 0 pid 0 comm [ib_srp]
link mlx4_0/- local_dma_lkey 0x8000 users 1 pid 0 comm [ib_core]
link cxgb4_0/- local_dma_lkey 0x0 users 0 pid 0 comm [ib_srp]
Signed-off-by: Steve Wise <redacted>
---
rdma/res.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
From: Steve Wise <hidden> Date: 2018-03-12 15:16:31
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
Thanks,
Steve.
[1] https://www.spinics.net/lists/linux-rdma/msg61720.html
-----Original Message-----
From: linux-rdma-owner@vger.kernel.org [mailto:linux-rdma-
owner@vger.kernel.org] On Behalf Of Steve Wise
Sent: Friday, March 02, 2018 1:56 PM
To: dsahern@gmail.com
Cc: leon@kernel.org; stephen@networkplumber.org; netdev@vger.kernel.org;
linux-rdma@vger.kernel.org
Subject: [PATCH v2 iproute2-next 0/6] cm_id, cq, mr, and pd resource
tracking
Hello,
This series enhances the iproute2 rdma tool to include dumping of
connection manager id (cm_id), completion queue (cq), memory region (mr),
and protection domain (pd) rdma resources. It is the user-space part of
the resource tracking series under review now on the linux-rdma list [1].
Changes since v1/RFC:
- removed RFC tag
- initialize rd properly to avoid passing a garbage port number
- revert accidental change to qp_valid_filters
- removed cm_id dev/network/transport types
- cm_id ip addrs now passed up as __kernel_sockaddr_storage
- cm_id ip address ports printed as "address:port" strings
- only parse/display memory keys and iova if available
- filter on "users" for cqs and pds
- fixed memory leaks
- removed PD_FLAGS attribute
- filter on "mrlen" for mrs
- filter on "poll-ctx" for cqs
- don't require addrs or qp_type for parsing cm_ids
- only filter optional attrs if they are present
- remove PGSIZE MR attr to match kernel
[1] https://www.spinics.net/lists/linux-rdma/msg61400.html
Thanks,
Steve.
---
Steve Wise (6):
rdma: update rdma_netlink.h
rdma: initialize the rd struct
rdma: Add CM_ID resource tracking information
rdma: Add CQ resource tracking information
rdma: Add MR resource tracking information
rdma: Add PD resource tracking information
include/json_writer.h | 2 +
include/uapi/rdma/rdma_netlink.h | 44 ++-
lib/json_writer.c | 11 +
rdma/rdma.c | 2 +-
rdma/rdma.h | 2 +
rdma/res.c | 611
++++++++++++++++++++++++++++++++++++++-
rdma/utils.c | 16 +
7 files changed, 683 insertions(+), 5 deletions(-)
--
1.8.3.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
From: David Ahern <hidden> Date: 2018-03-12 17:52:06
On 3/12/18 8:16 AM, Steve Wise wrote:
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
From: Steve Wise <hidden> Date: 2018-03-12 18:43:03
On 3/12/18 8:16 AM, Steve Wise wrote:
quoted
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
From: Leon Romanovsky <leon@kernel.org> Date: 2018-03-13 08:32:15
On Mon, Mar 12, 2018 at 10:53:03AM -0700, David Ahern wrote:
On 3/12/18 8:16 AM, Steve Wise wrote:
quoted
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
David,
Technically, you are right, and we would like to ask you for an extra tweak
to the flow for the RDMAtool, because current scheme causes delays at least
cycle.
Every RDMAtool's patchset which requires changes to headers is always
includes header patch, can you please accept those series and once you
are bringing new net-next headers from Linus, simply overwrite all our
headers?
Thanks
From: Leon Romanovsky <leon@kernel.org> Date: 2018-03-13 18:07:40
On Tue, Feb 27, 2018 at 08:07:05AM -0800, Steve Wise wrote:
Sample output:
# rdma resource
2: cxgb4_0: pd 5 cq 2 qp 2 cm_id 3 mr 7
3: mlx4_0: pd 7 cq 3 qp 3 cm_id 3 mr 7
# rdma resource show cm_id
link cxgb4_0/- lqpn 0 qp-type RC state LISTEN ps TCP pid 30485 comm rping src-addr 0.0.0.0:7174
link cxgb4_0/2 lqpn 1048 qp-type RC state CONNECT ps TCP pid 30503 comm rping src-addr 172.16.2.1:7174 dst-addr 172.16.2.1:38246
link cxgb4_0/2 lqpn 1040 qp-type RC state CONNECT ps TCP pid 30498 comm rping src-addr 172.16.2.1:38246 dst-addr 172.16.2.1:7174
link mlx4_0/- lqpn 0 qp-type RC state LISTEN ps TCP pid 30485 comm rping src-addr 0.0.0.0:7174
link mlx4_0/1 lqpn 539 qp-type RC state CONNECT ps TCP pid 30494 comm rping src-addr 172.16.99.1:7174 dst-addr 172.16.99.1:43670
link mlx4_0/1 lqpn 538 qp-type RC state CONNECT ps TCP pid 30492 comm rping src-addr 172.16.99.1:43670 dst-addr 172.16.99.1:7174
# rdma resource show cm_id dst-port 7174
link cxgb4_0/2 lqpn 1040 qp-type RC state CONNECT ps TCP pid 30498 comm rping src-addr 172.16.2.1:38246 dst-addr 172.16.2.1:7174
link mlx4_0/1 lqpn 538 qp-type RC state CONNECT ps TCP pid 30492 comm rping src-addr 172.16.99.1:43670 dst-addr 172.16.99.1:7174
Signed-off-by: Steve Wise <redacted>
---
rdma/rdma.h | 2 +
rdma/res.c | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
rdma/utils.c | 5 ++
3 files changed, 264 insertions(+), 1 deletion(-)
Steve, can you please add man pages update as a followup to this series?
Especially the fact that you are providing dst-port filter option should
be mentioned.
Thanks,
Reviewed-by: Leon Romanovsky <redacted>
From: Leon Romanovsky <leon@kernel.org> Date: 2018-03-13 18:11:23
On Tue, Feb 27, 2018 at 08:07:00AM -0800, Steve Wise wrote:
Initialize the rd struct so port_idx is 0 unless set otherwise.
Otherwise, strict_port queries end up passing an uninitialized PORT
nlattr.
Signed-off-by: Steve Wise <redacted>
---
rdma/rdma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: Leon Romanovsky <leon@kernel.org> Date: 2018-03-13 19:07:11
On Tue, Feb 27, 2018 at 08:07:23AM -0800, Steve Wise wrote:
Sample output:
Without CAP_NET_ADMIN capability:
link mlx4_0/- users 0 pid 0 comm [ib_srpt]
link mlx4_0/- users 0 pid 0 comm [ib_srp]
link mlx4_0/- users 1 pid 0 comm [ib_core]
link cxgb4_0/- users 0 pid 0 comm [ib_srp]
With CAP_NET_ADMIN capability:
link mlx4_0/- local_dma_lkey 0x8000 users 0 pid 0 comm [ib_srpt]
link mlx4_0/- local_dma_lkey 0x8000 users 0 pid 0 comm [ib_srp]
link mlx4_0/- local_dma_lkey 0x8000 users 1 pid 0 comm [ib_core]
link cxgb4_0/- local_dma_lkey 0x0 users 0 pid 0 comm [ib_srp]
Signed-off-by: Steve Wise <redacted>
---
rdma/res.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
Steve, can you please add man pages update as a followup to this series?
Especially the fact that you are providing dst-port filter option should
be mentioned.
Thanks,
Reviewed-by: Leon Romanovsky <redacted>
From: David Ahern <hidden> Date: 2018-03-13 20:45:15
On 3/13/18 1:32 AM, Leon Romanovsky wrote:
On Mon, Mar 12, 2018 at 10:53:03AM -0700, David Ahern wrote:
quoted
On 3/12/18 8:16 AM, Steve Wise wrote:
quoted
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
David,
Technically, you are right, and we would like to ask you for an extra tweak
to the flow for the RDMAtool, because current scheme causes delays at least
cycle.
Every RDMAtool's patchset which requires changes to headers is always
includes header patch, can you please accept those series and once you
are bringing new net-next headers from Linus, simply overwrite all our
headers?
I did not follow the discussion back when this decision was made, so how
did rdma tool end up in iproute2? I do not need the overhead of
sometimes I sync the rdma header file and sometimes I don't.
One option that comes to mind is to move the rdma header file under the
rdma directory. It breaks the uapi model, but it seems that iproute2 is
just a delivery vehicle for this command.
On Tue, 2018-03-13 at 13:45 -0700, David Ahern wrote:
On 3/13/18 1:32 AM, Leon Romanovsky wrote:
quoted
On Mon, Mar 12, 2018 at 10:53:03AM -0700, David Ahern wrote:
quoted
On 3/12/18 8:16 AM, Steve Wise wrote:
quoted
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
David,
Technically, you are right, and we would like to ask you for an extra tweak
to the flow for the RDMAtool, because current scheme causes delays at least
cycle.
Every RDMAtool's patchset which requires changes to headers is always
includes header patch, can you please accept those series and once you
are bringing new net-next headers from Linus, simply overwrite all our
headers?
I did not follow the discussion back when this decision was made, so how
did rdma tool end up in iproute2?
It is modeled after the ip command, and for better or worse, the
iproute2 package has become the standard drop box for low level kernel
network configuring tools. The RDMA subsystem may not be IP networking,
but it is still networking, so it seemed an appropriate fit.
I do not need the overhead of
sometimes I sync the rdma header file and sometimes I don't.
One option that comes to mind is to move the rdma header file under the
rdma directory. It breaks the uapi model, but it seems that iproute2 is
just a delivery vehicle for this command.
From: Jason Gunthorpe <jgg@ziepe.ca> Date: 2018-03-13 21:13:57
On Tue, Mar 13, 2018 at 01:45:12PM -0700, David Ahern wrote:
On 3/13/18 1:32 AM, Leon Romanovsky wrote:
quoted
On Mon, Mar 12, 2018 at 10:53:03AM -0700, David Ahern wrote:
quoted
On 3/12/18 8:16 AM, Steve Wise wrote:
quoted
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
David,
Technically, you are right, and we would like to ask you for an extra tweak
to the flow for the RDMAtool, because current scheme causes delays at least
cycle.
Every RDMAtool's patchset which requires changes to headers is always
includes header patch, can you please accept those series and once you
are bringing new net-next headers from Linus, simply overwrite all our
headers?
I did not follow the discussion back when this decision was made, so how
did rdma tool end up in iproute2? I do not need the overhead of
sometimes I sync the rdma header file and sometimes I don't.
Could you pull the uapi headers from linux-next? That tree will have
both netdev and rdma stuff merged together properly.
Jason
From: Jason Gunthorpe <jgg@ziepe.ca> Date: 2018-03-15 03:35:59
On Wed, Mar 14, 2018 at 08:14:53PM -0700, David Ahern wrote:
On 3/13/18 2:13 PM, Jason Gunthorpe wrote:
quoted
Could you pull the uapi headers from linux-next? That tree will have
both netdev and rdma stuff merged together properly.
What's the merge history between linux-next, Linus' tree, net-next +
rdma-next?
Not sure I understand the question?
linux-next is thrown away every cycle, so for instance you can't say
"took uapi headers from linux-next commit XYZ" in the iproute git
commit..
Otherwise, linux-next is built, I think daily/weekly and includes the
latest of both rdma and netdev next trees, so it certainly has the
right content.
A script could figure out the stable netdev and rdma commit IDs from
linux-next and record those, if that is interest..
Jason
From: David Ahern <hidden> Date: 2018-03-16 16:08:58
On 3/14/18 8:29 PM, Jason Gunthorpe wrote:
On Wed, Mar 14, 2018 at 08:14:53PM -0700, David Ahern wrote:
quoted
On 3/13/18 2:13 PM, Jason Gunthorpe wrote:
quoted
Could you pull the uapi headers from linux-next? That tree will have
both netdev and rdma stuff merged together properly.
What's the merge history between linux-next, Linus' tree, net-next +
rdma-next?
Not sure I understand the question?
linux-next is thrown away every cycle, so for instance you can't say
"took uapi headers from linux-next commit XYZ" in the iproute git
commit..
Otherwise, linux-next is built, I think daily/weekly and includes the
latest of both rdma and netdev next trees, so it certainly has the
right content.
A script could figure out the stable netdev and rdma commit IDs from
linux-next and record those, if that is interest..
I'd prefer not to sync headers to a tree that disappears; I like the
traceability to specific points in time.
From: David Ahern <hidden> Date: 2018-03-16 16:18:34
On 3/13/18 1:58 PM, Doug Ledford wrote:
On Tue, 2018-03-13 at 13:45 -0700, David Ahern wrote:
quoted
On 3/13/18 1:32 AM, Leon Romanovsky wrote:
quoted
On Mon, Mar 12, 2018 at 10:53:03AM -0700, David Ahern wrote:
quoted
On 3/12/18 8:16 AM, Steve Wise wrote:
quoted
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
David,
Technically, you are right, and we would like to ask you for an extra tweak
to the flow for the RDMAtool, because current scheme causes delays at least
cycle.
Every RDMAtool's patchset which requires changes to headers is always
includes header patch, can you please accept those series and once you
are bringing new net-next headers from Linus, simply overwrite all our
headers?
I did not follow the discussion back when this decision was made, so how
did rdma tool end up in iproute2?
It is modeled after the ip command, and for better or worse, the
iproute2 package has become the standard drop box for low level kernel
network configuring tools. The RDMA subsystem may not be IP networking,
but it is still networking, so it seemed an appropriate fit.
From: Leon Romanovsky <leon@kernel.org> Date: 2018-03-16 16:23:20
On Fri, Mar 16, 2018 at 09:08:55AM -0700, David Ahern wrote:
On 3/14/18 8:29 PM, Jason Gunthorpe wrote:
quoted
On Wed, Mar 14, 2018 at 08:14:53PM -0700, David Ahern wrote:
quoted
On 3/13/18 2:13 PM, Jason Gunthorpe wrote:
quoted
Could you pull the uapi headers from linux-next? That tree will have
both netdev and rdma stuff merged together properly.
What's the merge history between linux-next, Linus' tree, net-next +
rdma-next?
Not sure I understand the question?
linux-next is thrown away every cycle, so for instance you can't say
"took uapi headers from linux-next commit XYZ" in the iproute git
commit..
Otherwise, linux-next is built, I think daily/weekly and includes the
latest of both rdma and netdev next trees, so it certainly has the
right content.
A script could figure out the stable netdev and rdma commit IDs from
linux-next and record those, if that is interest..
I'd prefer not to sync headers to a tree that disappears; I like the
traceability to specific points in time.
The headers itself will have real SHAs, the same as netdev and RDMA
trees have, so it will give needed traceability as you are looking.
Thanks
On Tue, 2018-03-13 at 13:45 -0700, David Ahern wrote:
quoted
On 3/13/18 1:32 AM, Leon Romanovsky wrote:
quoted
On Mon, Mar 12, 2018 at 10:53:03AM -0700, David Ahern wrote:
quoted
On 3/12/18 8:16 AM, Steve Wise wrote:
quoted
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
David,
Technically, you are right, and we would like to ask you for an extra tweak
to the flow for the RDMAtool, because current scheme causes delays at least
cycle.
Every RDMAtool's patchset which requires changes to headers is always
includes header patch, can you please accept those series and once you
are bringing new net-next headers from Linus, simply overwrite all our
headers?
I did not follow the discussion back when this decision was made, so how
did rdma tool end up in iproute2?
It is modeled after the ip command, and for better or worse, the
iproute2 package has become the standard drop box for low level kernel
network configuring tools. The RDMA subsystem may not be IP networking,
but it is still networking, so it seemed an appropriate fit.
why doesn't the rdma tree go through Dave then?
Because it doesn't use the core network stack hardly at all. It creates
netdevs when it needs to bridge the two stacks, but otherwise the RDMA
subsystem core is apart and unique from the network stack Dave manages.
When I said it was networking, I meant it literally. The RDMA fabrics
are networks. It wasn't meant to imply that they shared anything
substantial in common with the typical Ethernet/IP networking that is
the core of what Dave manages.
From: David Ahern <hidden> Date: 2018-03-21 16:59:19
On 3/20/18 11:21 AM, Doug Ledford wrote:
On 3/16/2018 12:18 PM, David Ahern wrote:
quoted
On 3/13/18 1:58 PM, Doug Ledford wrote:
quoted
On Tue, 2018-03-13 at 13:45 -0700, David Ahern wrote:
quoted
On 3/13/18 1:32 AM, Leon Romanovsky wrote:
quoted
On Mon, Mar 12, 2018 at 10:53:03AM -0700, David Ahern wrote:
quoted
On 3/12/18 8:16 AM, Steve Wise wrote:
quoted
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
David,
Technically, you are right, and we would like to ask you for an extra tweak
to the flow for the RDMAtool, because current scheme causes delays at least
cycle.
Every RDMAtool's patchset which requires changes to headers is always
includes header patch, can you please accept those series and once you
are bringing new net-next headers from Linus, simply overwrite all our
headers?
I did not follow the discussion back when this decision was made, so how
did rdma tool end up in iproute2?
It is modeled after the ip command, and for better or worse, the
iproute2 package has become the standard drop box for low level kernel
network configuring tools. The RDMA subsystem may not be IP networking,
but it is still networking, so it seemed an appropriate fit.
why doesn't the rdma tree go through Dave then?
Because it doesn't use the core network stack hardly at all. It creates
netdevs when it needs to bridge the two stacks, but otherwise the RDMA
subsystem core is apart and unique from the network stack Dave manages.
When I said it was networking, I meant it literally. The RDMA fabrics
are networks. It wasn't meant to imply that they shared anything
substantial in common with the typical Ethernet/IP networking that is
the core of what Dave manages.
I think the simplest approach is to move the uapi header under the rdma
directory and you folks take ownership of that header.
From: Steve Wise <hidden> Date: 2018-03-22 20:20:18
On 3/21/2018 11:59 AM, David Ahern wrote:
On 3/20/18 11:21 AM, Doug Ledford wrote:
quoted
On 3/16/2018 12:18 PM, David Ahern wrote:
quoted
On 3/13/18 1:58 PM, Doug Ledford wrote:
quoted
On Tue, 2018-03-13 at 13:45 -0700, David Ahern wrote:
quoted
On 3/13/18 1:32 AM, Leon Romanovsky wrote:
quoted
On Mon, Mar 12, 2018 at 10:53:03AM -0700, David Ahern wrote:
quoted
On 3/12/18 8:16 AM, Steve Wise wrote:
quoted
Hey all,
The kernel side of this series has been merged for rdma-next [1]. Let me
know if this iproute2 series can be merged, of if it needs more changes.
The problem is that iproute2 headers are synced to kernel headers from
DaveM's tree (net-next mainly). I take it this series will not appear in
Dave's tree until after a merge through Linus' tree. Correct?
David,
Technically, you are right, and we would like to ask you for an extra tweak
to the flow for the RDMAtool, because current scheme causes delays at least
cycle.
Every RDMAtool's patchset which requires changes to headers is always
includes header patch, can you please accept those series and once you
are bringing new net-next headers from Linus, simply overwrite all our
headers?
I did not follow the discussion back when this decision was made, so how
did rdma tool end up in iproute2?
It is modeled after the ip command, and for better or worse, the
iproute2 package has become the standard drop box for low level kernel
network configuring tools. The RDMA subsystem may not be IP networking,
but it is still networking, so it seemed an appropriate fit.
why doesn't the rdma tree go through Dave then?
Because it doesn't use the core network stack hardly at all. It creates
netdevs when it needs to bridge the two stacks, but otherwise the RDMA
subsystem core is apart and unique from the network stack Dave manages.
When I said it was networking, I meant it literally. The RDMA fabrics
are networks. It wasn't meant to imply that they shared anything
substantial in common with the typical Ethernet/IP networking that is
the core of what Dave manages.
I think the simplest approach is to move the uapi header under the rdma
directory and you folks take ownership of that header.
@@ -16,9 +16,11 @@ static int res_help(struct rd *rd){pr_out("Usage: %s resource\n",rd->filename);pr_out(" resource show [DEV]\n");-pr_out(" resource show [qp]\n");+pr_out(" resource show [qp|cm_id]\n");pr_out(" resource show qp link [DEV/PORT]\n");pr_out(" resource show qp link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");+pr_out(" resource show cm_id link [DEV/PORT]\n");+pr_out(" resource show cm_id link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");return0;}
In general lines should stay under 80 columns. There are a few
exceptions to the rule (e.g., print strings), but most of the long lines
you have in this patch need to conform.
The above would be more readable as
static const
struct filters cm_id_valid_filters[MAX_NUMBER_OF_FILTERS] = {
{ .name = "link", .is_number = false },
{ .name = "lqpn", .is_number = true },
...
Definitely do not split between struct and filters.
did you forget to add rdma_cma.h? I don't see that file in my repo.
It is provided by the rdma-core package, upon which rdma tool now
depends for the rdma_port_space enum.
You need to add a check for the package, and only build rdma if that
package is installed. See check_mnl in configure for an example.
Ok, that makes sense.
IMHO, better solution will be to copy those files to iproute2.
Hey Leon,
Why is it better in your opinion? My gut tells me adding rdma_cma.h to
iproute2 means more uabi type syncing.
Making rdmatool be dependant on rdma-core will require that distributions
will update their specs to install rdma-core as a dependency for every
iprotue2 install.
The rdma-core dependency makes sense for RDMA users, but doesn't for most of
the iproute2 users.
Thanks
did you forget to add rdma_cma.h? I don't see that file in my repo.
It is provided by the rdma-core package, upon which rdma tool now
depends for the rdma_port_space enum.
You need to add a check for the package, and only build rdma if that
package is installed. See check_mnl in configure for an example.
Ok, that makes sense.
IMHO, better solution will be to copy those files to iproute2.
Hey Leon,
Why is it better in your opinion? My gut tells me adding rdma_cma.h to
iproute2 means more uabi type syncing.
Making rdmatool be dependant on rdma-core will require that distributions
will update their specs to install rdma-core as a dependency for every
iprotue2 install.
The rdma-core dependency makes sense for RDMA users, but doesn't for most of
the iproute2 users.
I'm fuzzy on the details of distro packaging, but David's suggestion is
that rdmatool wouldn't get built if rdma-core isn't present. But
everything else would. Just like it does not get built if libmnl is not
installed. For pre-built rpms, the rdma-core would have to be present.
I'm ok pulling it in, I'm just trying to understand. :)
Steve.
did you forget to add rdma_cma.h? I don't see that file in my repo.
It is provided by the rdma-core package, upon which rdma tool now
depends for the rdma_port_space enum.
You need to add a check for the package, and only build rdma if that
package is installed. See check_mnl in configure for an example.
Ok, that makes sense.
IMHO, better solution will be to copy those files to iproute2.
Hey Leon,
Why is it better in your opinion? My gut tells me adding rdma_cma.h to
iproute2 means more uabi type syncing.
Making rdmatool be dependant on rdma-core will require that distributions
will update their specs to install rdma-core as a dependency for every
iprotue2 install.
The rdma-core dependency makes sense for RDMA users, but doesn't for most of
the iproute2 users.
I'm fuzzy on the details of distro packaging, but David's suggestion is
that rdmatool wouldn't get built if rdma-core isn't present. But
everything else would. Just like it does not get built if libmnl is not
installed. For pre-built rpms, the rdma-core would have to be present.
I'm ok pulling it in, I'm just trying to understand. :)
Distros supply pre-built packages, for example Fedora's RPM:
https://rpmfind.net/linux/RPM/fedora/27/x86_64/i/iproute-4.12.0-3.fc27.x86_64.html
It requires that libmnl will be installed. Once rdmatool will need
rdma-core, it will pulled in too.
BTW, don't forget to change header's guards (ifdef/defne ..), see
rdma_netlink.h as an example.
@@ -16,9 +16,11 @@ static int res_help(struct rd *rd){pr_out("Usage: %s resource\n",rd->filename);pr_out(" resource show [DEV]\n");-pr_out(" resource show [qp]\n");+pr_out(" resource show [qp|cm_id]\n");pr_out(" resource show qp link [DEV/PORT]\n");pr_out(" resource show qp link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");+pr_out(" resource show cm_id link [DEV/PORT]\n");+pr_out(" resource show cm_id link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");return0;}
In general lines should stay under 80 columns. There are a few
exceptions to the rule (e.g., print strings), but most of the long lines
you have in this patch need to conform.
The above would be more readable as
static const
struct filters cm_id_valid_filters[MAX_NUMBER_OF_FILTERS] = {
{ .name = "link", .is_number = false },
{ .name = "lqpn", .is_number = true },
...
Definitely do not split between struct and filters.
Your formatting is easier to read/maintain.
Thanks for the comments!
did you forget to add rdma_cma.h? I don't see that file in my repo.
It is provided by the rdma-core package, upon which rdma tool now
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an include/uapi/rdma header
Fix it there and don't try to use rdma-core headers to get kernel ABI.
Jason
I wish you'd commented on this just a little sooner. I just resent v3
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port space from
enum rdma_port_space to a new ABI enum, say nldev_rdma_port_space, that
i add to rdma_netlink.h? I'd hate to open the can of worms of trying to
split rdma_cma.h into uabi and no uabi headers. :(
Steve.
did you forget to add rdma_cma.h? I don't see that file in my repo.
It is provided by the rdma-core package, upon which rdma tool now
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an include/uapi/rdma header
Fix it there and don't try to use rdma-core headers to get kernel ABI.
Jason
I wish you'd commented on this just a little sooner. I just resent v3
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port space from
enum rdma_port_space to a new ABI enum, say nldev_rdma_port_space, that
i add to rdma_netlink.h? I'd hate to open the can of worms of trying to
split rdma_cma.h into uabi and no uabi headers. :(
If port space is already part of the ABI there isn't much reason to
translate it.
You just need to pick the right header to put it in, since it is a verbs
define it doesn't belong in the netlink header.
Jason
did you forget to add rdma_cma.h? I don't see that file in my repo.
It is provided by the rdma-core package, upon which rdma tool now
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an include/uapi/rdma header
Fix it there and don't try to use rdma-core headers to get kernel ABI.
Jason
I wish you'd commented on this just a little sooner. I just resent v3
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port space from
enum rdma_port_space to a new ABI enum, say nldev_rdma_port_space, that
i add to rdma_netlink.h? I'd hate to open the can of worms of trying to
split rdma_cma.h into uabi and no uabi headers. :(
If port space is already part of the ABI there isn't much reason to
translate it.
You just need to pick the right header to put it in, since it is a verbs
define it doesn't belong in the netlink header.
I completely understand Steve's concerns.
I tried to do such thing (expose kernel headers) in first incarnation of
rdmatool with attempt to clean IB/core as well to ensure that we won't expose
anything that is not implemented. It didn't go well.
Thanks
did you forget to add rdma_cma.h? I don't see that file in my repo.
It is provided by the rdma-core package, upon which rdma tool now
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an include/uapi/rdma header
Fix it there and don't try to use rdma-core headers to get kernel ABI.
Jason
I wish you'd commented on this just a little sooner. I just resent v3
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port space from
enum rdma_port_space to a new ABI enum, say nldev_rdma_port_space, that
i add to rdma_netlink.h? I'd hate to open the can of worms of trying to
split rdma_cma.h into uabi and no uabi headers. :(
If port space is already part of the ABI there isn't much reason to
translate it.
You just need to pick the right header to put it in, since it is a verbs
define it doesn't belong in the netlink header.
I completely understand Steve's concerns.
I tried to do such thing (expose kernel headers) in first incarnation of
rdmatool with attempt to clean IB/core as well to ensure that we won't expose
anything that is not implemented. It didn't go well.
rdma-core is now using the kernel uapi/ headers natively, seems to be
going OK. What problem did you face?
Jason
did you forget to add rdma_cma.h? I don't see that file in my repo.
It is provided by the rdma-core package, upon which rdma tool now
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an include/uapi/rdma header
Fix it there and don't try to use rdma-core headers to get kernel ABI.
Jason
I wish you'd commented on this just a little sooner. I just resent v3
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port space from
enum rdma_port_space to a new ABI enum, say nldev_rdma_port_space, that
i add to rdma_netlink.h? I'd hate to open the can of worms of trying to
split rdma_cma.h into uabi and no uabi headers. :(
If port space is already part of the ABI there isn't much reason to
translate it.
You just need to pick the right header to put it in, since it is a verbs
define it doesn't belong in the netlink header.
I completely understand Steve's concerns.
I tried to do such thing (expose kernel headers) in first incarnation of
rdmatool with attempt to clean IB/core as well to ensure that we won't expose
anything that is not implemented. It didn't go well.
rdma-core is now using the kernel uapi/ headers natively, seems to be
going OK. What problem did you face?
I didn't agree to move to UAPI defines which are not implemented and not
used in the kernel, so I sent small number of patches similar to those [1, 2].
Those patches were rejected.
So please don't mix Steve's need to use 3 defines with very large and
painful task to expose proper UAPIs.
Thanks
[1] https://patchwork.kernel.org/patch/9901319/
[2] https://patchwork.kernel.org/patch/9901317/
did you forget to add rdma_cma.h? I don't see that file in my repo.
It is provided by the rdma-core package, upon which rdma tool now
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an include/uapi/rdma header
Fix it there and don't try to use rdma-core headers to get kernel ABI.
Jason
I wish you'd commented on this just a little sooner. I just resent v3
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port space from
enum rdma_port_space to a new ABI enum, say nldev_rdma_port_space, that
i add to rdma_netlink.h? I'd hate to open the can of worms of trying to
split rdma_cma.h into uabi and no uabi headers. :(
If port space is already part of the ABI there isn't much reason to
translate it.
You just need to pick the right header to put it in, since it is a verbs
define it doesn't belong in the netlink header.
I completely understand Steve's concerns.
I tried to do such thing (expose kernel headers) in first incarnation of
rdmatool with attempt to clean IB/core as well to ensure that we won't expose
anything that is not implemented. It didn't go well.
rdma-core is now using the kernel uapi/ headers natively, seems to be
going OK. What problem did you face?
I didn't agree to move to UAPI defines which are not implemented and not
used in the kernel, so I sent small number of patches similar to those [1, 2].
Those patches were rejected.
So please don't mix Steve's need to use 3 defines with very large and
painful task to expose proper UAPIs.
Steve can just move the 3 defines he needs to the uapi, we are doing
this incrementally..
rdma_core does not define kernel ABI and it is totally wrong to use
random constants from rdma_cma.h as kernel ABI.
Jason
did you forget to add rdma_cma.h? I don't see that file in my
repo.
quoted
quoted
quoted
quoted
quoted
quoted
quoted
It is provided by the rdma-core package, upon which rdma tool
now
quoted
quoted
quoted
quoted
quoted
quoted
quoted
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an include/uapi/rdma
header
quoted
quoted
quoted
quoted
quoted
quoted
Fix it there and don't try to use rdma-core headers to get kernel
ABI.
quoted
quoted
quoted
quoted
quoted
quoted
Jason
I wish you'd commented on this just a little sooner. I just resent
v3
quoted
quoted
quoted
quoted
quoted
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port space
from
quoted
quoted
quoted
quoted
quoted
enum rdma_port_space to a new ABI enum, say
nldev_rdma_port_space, that
quoted
quoted
quoted
quoted
quoted
i add to rdma_netlink.h? I'd hate to open the can of worms of
trying to
quoted
quoted
quoted
quoted
quoted
split rdma_cma.h into uabi and no uabi headers. :(
If port space is already part of the ABI there isn't much reason to
translate it.
You just need to pick the right header to put it in, since it is a verbs
define it doesn't belong in the netlink header.
I completely understand Steve's concerns.
I tried to do such thing (expose kernel headers) in first incarnation of
rdmatool with attempt to clean IB/core as well to ensure that we
won't expose
quoted
quoted
quoted
anything that is not implemented. It didn't go well.
rdma-core is now using the kernel uapi/ headers natively, seems to be
going OK. What problem did you face?
I didn't agree to move to UAPI defines which are not implemented and
not
quoted
used in the kernel, so I sent small number of patches similar to those [1,
2].
quoted
Those patches were rejected.
So please don't mix Steve's need to use 3 defines with very large and
painful task to expose proper UAPIs.
Steve can just move the 3 defines he needs to the uapi, we are doing
this incrementally..
rdma_core does not define kernel ABI and it is totally wrong to use
random constants from rdma_cma.h as kernel ABI.
Proposal:
Since the cm_id port space is part of the rdma_ucm_create_id struct in include/uapi/rdma/rdma_user_cm.h, I'll move the rdma_port_space enum there. And then my iproute2 series will have to add a copy of rdma_user_cm.h locally into rdma/include/uapi/rdma, right?
Will that work for everyone?
Steve.
did you forget to add rdma_cma.h? I don't see that file in my
repo.
quoted
quoted
quoted
quoted
quoted
quoted
quoted
It is provided by the rdma-core package, upon which rdma tool
now
quoted
quoted
quoted
quoted
quoted
quoted
quoted
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an include/uapi/rdma
header
quoted
quoted
quoted
quoted
quoted
quoted
Fix it there and don't try to use rdma-core headers to get kernel
ABI.
quoted
quoted
quoted
quoted
quoted
quoted
Jason
I wish you'd commented on this just a little sooner. I just resent
v3
quoted
quoted
quoted
quoted
quoted
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port space
from
quoted
quoted
quoted
quoted
quoted
enum rdma_port_space to a new ABI enum, say
nldev_rdma_port_space, that
quoted
quoted
quoted
quoted
quoted
i add to rdma_netlink.h? I'd hate to open the can of worms of
trying to
quoted
quoted
quoted
quoted
quoted
split rdma_cma.h into uabi and no uabi headers. :(
If port space is already part of the ABI there isn't much reason to
translate it.
You just need to pick the right header to put it in, since it is a verbs
define it doesn't belong in the netlink header.
I completely understand Steve's concerns.
I tried to do such thing (expose kernel headers) in first incarnation of
rdmatool with attempt to clean IB/core as well to ensure that we
won't expose
quoted
quoted
quoted
anything that is not implemented. It didn't go well.
rdma-core is now using the kernel uapi/ headers natively, seems to be
going OK. What problem did you face?
I didn't agree to move to UAPI defines which are not implemented and
not
quoted
used in the kernel, so I sent small number of patches similar to those [1,
2].
quoted
Those patches were rejected.
So please don't mix Steve's need to use 3 defines with very large and
painful task to expose proper UAPIs.
Steve can just move the 3 defines he needs to the uapi, we are doing
this incrementally..
rdma_core does not define kernel ABI and it is totally wrong to use
random constants from rdma_cma.h as kernel ABI.
Proposal:
Since the cm_id port space is part of the rdma_ucm_create_id struct in include/uapi/rdma/rdma_user_cm.h, I'll move the rdma_port_space enum there. And then my iproute2 series will have to add a copy of rdma_user_cm.h locally into rdma/include/uapi/rdma, right?
Will that work for everyone?
You need to remove _PS from that structure and from the kernel with
justification that it is safe to do.
Thanks
did you forget to add rdma_cma.h? I don't see that file
in
my
quoted
quoted
repo.
quoted
quoted
quoted
quoted
quoted
quoted
quoted
It is provided by the rdma-core package, upon which rdma
tool
quoted
quoted
now
quoted
quoted
quoted
quoted
quoted
quoted
quoted
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an
include/uapi/rdma
quoted
quoted
header
quoted
quoted
quoted
quoted
quoted
quoted
Fix it there and don't try to use rdma-core headers to get
kernel
quoted
quoted
ABI.
quoted
quoted
quoted
quoted
quoted
quoted
Jason
I wish you'd commented on this just a little sooner. I just
resent
quoted
quoted
v3
quoted
quoted
quoted
quoted
quoted
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port
space
quoted
quoted
from
quoted
quoted
quoted
quoted
quoted
enum rdma_port_space to a new ABI enum, say
nldev_rdma_port_space, that
quoted
quoted
quoted
quoted
quoted
i add to rdma_netlink.h? I'd hate to open the can of worms
of
quoted
quoted
trying to
quoted
quoted
quoted
quoted
quoted
split rdma_cma.h into uabi and no uabi headers. :(
If port space is already part of the ABI there isn't much
reason to
quoted
quoted
quoted
quoted
quoted
quoted
translate it.
You just need to pick the right header to put it in, since it
is a
verbs
quoted
quoted
quoted
quoted
quoted
quoted
define it doesn't belong in the netlink header.
I completely understand Steve's concerns.
I tried to do such thing (expose kernel headers) in first
incarnation
of
quoted
quoted
quoted
quoted
quoted
rdmatool with attempt to clean IB/core as well to ensure that we
won't expose
quoted
quoted
quoted
anything that is not implemented. It didn't go well.
rdma-core is now using the kernel uapi/ headers natively, seems to
be
quoted
quoted
quoted
quoted
going OK. What problem did you face?
I didn't agree to move to UAPI defines which are not implemented and
not
quoted
used in the kernel, so I sent small number of patches similar to
those
[1,
quoted
quoted
2].
quoted
Those patches were rejected.
So please don't mix Steve's need to use 3 defines with very large
and
quoted
quoted
quoted
painful task to expose proper UAPIs.
Steve can just move the 3 defines he needs to the uapi, we are doing
this incrementally..
rdma_core does not define kernel ABI and it is totally wrong to use
random constants from rdma_cma.h as kernel ABI.
Proposal:
Since the cm_id port space is part of the rdma_ucm_create_id struct in
include/uapi/rdma/rdma_user_cm.h, I'll move the rdma_port_space enum
there. And then my iproute2 series will have to add a copy of
rdma_user_cm.h locally into rdma/include/uapi/rdma, right?
quoted
Will that work for everyone?
You need to remove _PS from that structure and from the kernel with
justification that it is safe to do.
Thanks
I'm pretty sure port space is needed. That struct is used to create a user
mode cm_id...
did you forget to add rdma_cma.h? I don't see that file
in
quoted
my
quoted
quoted
repo.
quoted
quoted
quoted
quoted
quoted
quoted
quoted
It is provided by the rdma-core package, upon which rdma
tool
quoted
quoted
now
quoted
quoted
quoted
quoted
quoted
quoted
quoted
depends for the rdma_port_space enum.
It is a kernel bug that enum is not in an
include/uapi/rdma
quoted
quoted
quoted
header
quoted
quoted
quoted
quoted
quoted
quoted
Fix it there and don't try to use rdma-core headers to get
kernel
quoted
quoted
ABI.
quoted
quoted
quoted
quoted
quoted
quoted
Jason
I wish you'd commented on this just a little sooner. I just
resent
quoted
quoted
v3
quoted
quoted
quoted
quoted
quoted
of this series... with rdma_cma.h included. :)
How about the restrack/nldev code just translates the port
space
quoted
quoted
from
quoted
quoted
quoted
quoted
quoted
enum rdma_port_space to a new ABI enum, say
nldev_rdma_port_space, that
quoted
quoted
quoted
quoted
quoted
i add to rdma_netlink.h? I'd hate to open the can of worms
of
quoted
quoted
quoted
trying to
quoted
quoted
quoted
quoted
quoted
split rdma_cma.h into uabi and no uabi headers. :(
If port space is already part of the ABI there isn't much
reason to
quoted
quoted
quoted
quoted
quoted
quoted
quoted
translate it.
You just need to pick the right header to put it in, since it
is a
quoted
verbs
quoted
quoted
quoted
quoted
quoted
quoted
define it doesn't belong in the netlink header.
I completely understand Steve's concerns.
I tried to do such thing (expose kernel headers) in first
incarnation
quoted
of
quoted
quoted
quoted
quoted
quoted
rdmatool with attempt to clean IB/core as well to ensure that we
won't expose
quoted
quoted
quoted
anything that is not implemented. It didn't go well.
rdma-core is now using the kernel uapi/ headers natively, seems to
be
quoted
quoted
quoted
quoted
going OK. What problem did you face?
I didn't agree to move to UAPI defines which are not implemented and
not
quoted
used in the kernel, so I sent small number of patches similar to
those
quoted
[1,
quoted
quoted
2].
quoted
Those patches were rejected.
So please don't mix Steve's need to use 3 defines with very large
and
quoted
quoted
quoted
quoted
painful task to expose proper UAPIs.
Steve can just move the 3 defines he needs to the uapi, we are doing
this incrementally..
rdma_core does not define kernel ABI and it is totally wrong to use
random constants from rdma_cma.h as kernel ABI.
Proposal:
Since the cm_id port space is part of the rdma_ucm_create_id struct in
include/uapi/rdma/rdma_user_cm.h, I'll move the rdma_port_space enum
there. And then my iproute2 series will have to add a copy of
rdma_user_cm.h locally into rdma/include/uapi/rdma, right?
quoted
Will that work for everyone?
You need to remove _PS from that structure and from the kernel with
justification that it is safe to do.
Thanks
I'm pretty sure port space is needed. That struct is used to create a user
mode cm_id...