* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
[not found] ` <743dc7a5306f9b3368fcd4c143cdd822250444a6.1520020530.git.swise@opengridcomputing.com>
@ 2018-03-26 14:17 ` David Ahern
2018-03-26 14:30 ` Steve Wise
2018-03-26 15:40 ` David Ahern
1 sibling, 1 reply; 23+ messages in thread
From: David Ahern @ 2018-03-26 14:17 UTC (permalink / raw)
To: Steve Wise; +Cc: leon, stephen, netdev, linux-rdma
On 2/27/18 9:07 AM, Steve Wise wrote:
> diff --git a/rdma/rdma.h b/rdma/rdma.h
> index 5809f70..e55205b 100644
> --- a/rdma/rdma.h
> +++ b/rdma/rdma.h
> @@ -18,10 +18,12 @@
> #include <libmnl/libmnl.h>
> #include <rdma/rdma_netlink.h>
> #include <time.h>
> +#include <net/if_arp.h>
>
> #include "list.h"
> #include "utils.h"
> #include "json_writer.h"
> +#include <rdma/rdma_cma.h>
>
did you forget to add rdma_cma.h? I don't see that file in my repo.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 14:17 ` [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information David Ahern
@ 2018-03-26 14:30 ` Steve Wise
2018-03-26 14:44 ` David Ahern
2018-03-26 21:15 ` Jason Gunthorpe
0 siblings, 2 replies; 23+ messages in thread
From: Steve Wise @ 2018-03-26 14:30 UTC (permalink / raw)
To: David Ahern; +Cc: leon, stephen, netdev, linux-rdma
On 3/26/2018 9:17 AM, David Ahern wrote:
> On 2/27/18 9:07 AM, Steve Wise wrote:
>> diff --git a/rdma/rdma.h b/rdma/rdma.h
>> index 5809f70..e55205b 100644
>> --- a/rdma/rdma.h
>> +++ b/rdma/rdma.h
>> @@ -18,10 +18,12 @@
>> #include <libmnl/libmnl.h>
>> #include <rdma/rdma_netlink.h>
>> #include <time.h>
>> +#include <net/if_arp.h>
>>
>> #include "list.h"
>> #include "utils.h"
>> #include "json_writer.h"
>> +#include <rdma/rdma_cma.h>
>>
> 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.
Steve.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 14:30 ` Steve Wise
@ 2018-03-26 14:44 ` David Ahern
2018-03-26 14:55 ` Steve Wise
2018-03-26 21:15 ` Jason Gunthorpe
1 sibling, 1 reply; 23+ messages in thread
From: David Ahern @ 2018-03-26 14:44 UTC (permalink / raw)
To: Steve Wise; +Cc: leon, stephen, netdev, linux-rdma
On 3/26/18 8:30 AM, Steve Wise wrote:
>
>
> On 3/26/2018 9:17 AM, David Ahern wrote:
>> On 2/27/18 9:07 AM, Steve Wise wrote:
>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
>>> index 5809f70..e55205b 100644
>>> --- a/rdma/rdma.h
>>> +++ b/rdma/rdma.h
>>> @@ -18,10 +18,12 @@
>>> #include <libmnl/libmnl.h>
>>> #include <rdma/rdma_netlink.h>
>>> #include <time.h>
>>> +#include <net/if_arp.h>
>>>
>>> #include "list.h"
>>> #include "utils.h"
>>> #include "json_writer.h"
>>> +#include <rdma/rdma_cma.h>
>>>
>> 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.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 14:44 ` David Ahern
@ 2018-03-26 14:55 ` Steve Wise
2018-03-26 15:08 ` Leon Romanovsky
0 siblings, 1 reply; 23+ messages in thread
From: Steve Wise @ 2018-03-26 14:55 UTC (permalink / raw)
To: David Ahern; +Cc: leon, stephen, netdev, linux-rdma
On 3/26/2018 9:44 AM, David Ahern wrote:
> On 3/26/18 8:30 AM, Steve Wise wrote:
>>
>> On 3/26/2018 9:17 AM, David Ahern wrote:
>>> On 2/27/18 9:07 AM, Steve Wise wrote:
>>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
>>>> index 5809f70..e55205b 100644
>>>> --- a/rdma/rdma.h
>>>> +++ b/rdma/rdma.h
>>>> @@ -18,10 +18,12 @@
>>>> #include <libmnl/libmnl.h>
>>>> #include <rdma/rdma_netlink.h>
>>>> #include <time.h>
>>>> +#include <net/if_arp.h>
>>>>
>>>> #include "list.h"
>>>> #include "utils.h"
>>>> #include "json_writer.h"
>>>> +#include <rdma/rdma_cma.h>
>>>>
>>> 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.
Steve.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 14:55 ` Steve Wise
@ 2018-03-26 15:08 ` Leon Romanovsky
2018-03-26 15:24 ` Steve Wise
0 siblings, 1 reply; 23+ messages in thread
From: Leon Romanovsky @ 2018-03-26 15:08 UTC (permalink / raw)
To: Steve Wise; +Cc: David Ahern, stephen, netdev, linux-rdma
[-- Attachment #1: Type: text/plain, Size: 1116 bytes --]
On Mon, Mar 26, 2018 at 09:55:46AM -0500, Steve Wise wrote:
>
>
> On 3/26/2018 9:44 AM, David Ahern wrote:
> > On 3/26/18 8:30 AM, Steve Wise wrote:
> >>
> >> On 3/26/2018 9:17 AM, David Ahern wrote:
> >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> >>>> index 5809f70..e55205b 100644
> >>>> --- a/rdma/rdma.h
> >>>> +++ b/rdma/rdma.h
> >>>> @@ -18,10 +18,12 @@
> >>>> #include <libmnl/libmnl.h>
> >>>> #include <rdma/rdma_netlink.h>
> >>>> #include <time.h>
> >>>> +#include <net/if_arp.h>
> >>>>
> >>>> #include "list.h"
> >>>> #include "utils.h"
> >>>> #include "json_writer.h"
> >>>> +#include <rdma/rdma_cma.h>
> >>>>
> >>> 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.
Thanks
>
> Steve.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 15:08 ` Leon Romanovsky
@ 2018-03-26 15:24 ` Steve Wise
2018-03-26 17:06 ` Leon Romanovsky
0 siblings, 1 reply; 23+ messages in thread
From: Steve Wise @ 2018-03-26 15:24 UTC (permalink / raw)
To: Leon Romanovsky; +Cc: David Ahern, stephen, netdev, linux-rdma
On 3/26/2018 10:08 AM, Leon Romanovsky wrote:
> On Mon, Mar 26, 2018 at 09:55:46AM -0500, Steve Wise wrote:
>>
>> On 3/26/2018 9:44 AM, David Ahern wrote:
>>> On 3/26/18 8:30 AM, Steve Wise wrote:
>>>> On 3/26/2018 9:17 AM, David Ahern wrote:
>>>>> On 2/27/18 9:07 AM, Steve Wise wrote:
>>>>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
>>>>>> index 5809f70..e55205b 100644
>>>>>> --- a/rdma/rdma.h
>>>>>> +++ b/rdma/rdma.h
>>>>>> @@ -18,10 +18,12 @@
>>>>>> #include <libmnl/libmnl.h>
>>>>>> #include <rdma/rdma_netlink.h>
>>>>>> #include <time.h>
>>>>>> +#include <net/if_arp.h>
>>>>>>
>>>>>> #include "list.h"
>>>>>> #include "utils.h"
>>>>>> #include "json_writer.h"
>>>>>> +#include <rdma/rdma_cma.h>
>>>>>>
>>>>> 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.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
[not found] ` <743dc7a5306f9b3368fcd4c143cdd822250444a6.1520020530.git.swise@opengridcomputing.com>
2018-03-26 14:17 ` [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information David Ahern
@ 2018-03-26 15:40 ` David Ahern
2018-03-26 19:55 ` Steve Wise
1 sibling, 1 reply; 23+ messages in thread
From: David Ahern @ 2018-03-26 15:40 UTC (permalink / raw)
To: Steve Wise; +Cc: leon, stephen, netdev, linux-rdma
On 2/27/18 9:07 AM, 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 <swise@opengridcomputing.com>
> ---
> rdma/rdma.h | 2 +
> rdma/res.c | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> rdma/utils.c | 5 ++
> 3 files changed, 264 insertions(+), 1 deletion(-)
>
> diff --git a/rdma/rdma.h b/rdma/rdma.h
> index 5809f70..e55205b 100644
> --- a/rdma/rdma.h
> +++ b/rdma/rdma.h
> @@ -18,10 +18,12 @@
> #include <libmnl/libmnl.h>
> #include <rdma/rdma_netlink.h>
> #include <time.h>
> +#include <net/if_arp.h>
>
> #include "list.h"
> #include "utils.h"
> #include "json_writer.h"
> +#include <rdma/rdma_cma.h>
>
> #define pr_err(args...) fprintf(stderr, ##args)
> #define pr_out(args...) fprintf(stdout, ##args)
> diff --git a/rdma/res.c b/rdma/res.c
> index 62f5c54..1ef4f20 100644
> --- a/rdma/res.c
> +++ b/rdma/res.c
> @@ -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");
> return 0;
> }
>
> @@ -433,6 +435,230 @@ static int res_qp_parse_cb(const struct nlmsghdr *nlh, void *data)
> return MNL_CB_OK;
> }
>
> +static void print_qp_type(struct rd *rd, uint32_t val)
> +{
> + if (rd->json_output)
> + jsonw_string_field(rd->jw, "qp-type",
> + qp_types_to_str(val));
> + else
> + pr_out("qp-type %s ", qp_types_to_str(val));
> +}
> +
> +static const char *cm_id_state_to_str(uint8_t idx)
> +{
> + static const char * const cm_id_states_str[] = { "IDLE", "ADDR_QUERY",
> + "ADDR_RESOLVED", "ROUTE_QUERY", "ROUTE_RESOLVED",
> + "CONNECT", "DISCONNECT",
> + "ADDR_BOUND", "LISTEN", "DEVICE_REMOVAL", "DESTROYING" };
> +
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.
> @@ -457,11 +683,41 @@ filters qp_valid_filters[MAX_NUMBER_OF_FILTERS] = {{ .name = "link",
>
> RES_FUNC(res_qp, RDMA_NLDEV_CMD_RES_QP_GET, qp_valid_filters, false);
>
> +static const struct
> +filters cm_id_valid_filters[MAX_NUMBER_OF_FILTERS] = {{ .name = "link",
> + .is_number = false },
> + { .name = "lqpn",
> + .is_number = true },
> + { .name = "qp-type",
> + .is_number = false },
> + { .name = "state",
> + .is_number = false },
> + { .name = "ps",
> + .is_number = false },
> + { .name = "dev-type",
> + .is_number = false },
> + { .name = "transport-type",
> + .is_number = false },
> + { .name = "pid",
> + .is_number = true },
> + { .name = "src-addr",
> + .is_number = false },
> + { .name = "src-port",
> + .is_number = true },
> + { .name = "dst-addr",
> + .is_number = false },
> + { .name = "dst-port",
> + .is_number = true }};
> +
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.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 15:24 ` Steve Wise
@ 2018-03-26 17:06 ` Leon Romanovsky
2018-03-26 17:13 ` Steve Wise
0 siblings, 1 reply; 23+ messages in thread
From: Leon Romanovsky @ 2018-03-26 17:06 UTC (permalink / raw)
To: Steve Wise; +Cc: David Ahern, stephen, netdev, linux-rdma
[-- Attachment #1: Type: text/plain, Size: 1719 bytes --]
On Mon, Mar 26, 2018 at 10:24:25AM -0500, Steve Wise wrote:
>
>
> On 3/26/2018 10:08 AM, Leon Romanovsky wrote:
> > On Mon, Mar 26, 2018 at 09:55:46AM -0500, Steve Wise wrote:
> >>
> >> On 3/26/2018 9:44 AM, David Ahern wrote:
> >>> On 3/26/18 8:30 AM, Steve Wise wrote:
> >>>> On 3/26/2018 9:17 AM, David Ahern wrote:
> >>>>> On 2/27/18 9:07 AM, Steve Wise wrote:
> >>>>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> >>>>>> index 5809f70..e55205b 100644
> >>>>>> --- a/rdma/rdma.h
> >>>>>> +++ b/rdma/rdma.h
> >>>>>> @@ -18,10 +18,12 @@
> >>>>>> #include <libmnl/libmnl.h>
> >>>>>> #include <rdma/rdma_netlink.h>
> >>>>>> #include <time.h>
> >>>>>> +#include <net/if_arp.h>
> >>>>>>
> >>>>>> #include "list.h"
> >>>>>> #include "utils.h"
> >>>>>> #include "json_writer.h"
> >>>>>> +#include <rdma/rdma_cma.h>
> >>>>>>
> >>>>> 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
>
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 17:06 ` Leon Romanovsky
@ 2018-03-26 17:13 ` Steve Wise
2018-03-26 17:27 ` Leon Romanovsky
0 siblings, 1 reply; 23+ messages in thread
From: Steve Wise @ 2018-03-26 17:13 UTC (permalink / raw)
To: Leon Romanovsky; +Cc: David Ahern, stephen, netdev, linux-rdma
On 3/26/2018 12:06 PM, Leon Romanovsky wrote:
> On Mon, Mar 26, 2018 at 10:24:25AM -0500, Steve Wise wrote:
>>
>> On 3/26/2018 10:08 AM, Leon Romanovsky wrote:
>>> On Mon, Mar 26, 2018 at 09:55:46AM -0500, Steve Wise wrote:
>>>> On 3/26/2018 9:44 AM, David Ahern wrote:
>>>>> On 3/26/18 8:30 AM, Steve Wise wrote:
>>>>>> On 3/26/2018 9:17 AM, David Ahern wrote:
>>>>>>> On 2/27/18 9:07 AM, Steve Wise wrote:
>>>>>>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
>>>>>>>> index 5809f70..e55205b 100644
>>>>>>>> --- a/rdma/rdma.h
>>>>>>>> +++ b/rdma/rdma.h
>>>>>>>> @@ -18,10 +18,12 @@
>>>>>>>> #include <libmnl/libmnl.h>
>>>>>>>> #include <rdma/rdma_netlink.h>
>>>>>>>> #include <time.h>
>>>>>>>> +#include <net/if_arp.h>
>>>>>>>>
>>>>>>>> #include "list.h"
>>>>>>>> #include "utils.h"
>>>>>>>> #include "json_writer.h"
>>>>>>>> +#include <rdma/rdma_cma.h>
>>>>>>>>
>>>>>>> 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.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 17:13 ` Steve Wise
@ 2018-03-26 17:27 ` Leon Romanovsky
0 siblings, 0 replies; 23+ messages in thread
From: Leon Romanovsky @ 2018-03-26 17:27 UTC (permalink / raw)
To: Steve Wise; +Cc: David Ahern, stephen, netdev, linux-rdma
[-- Attachment #1: Type: text/plain, Size: 2644 bytes --]
On Mon, Mar 26, 2018 at 12:13:53PM -0500, Steve Wise wrote:
>
>
> On 3/26/2018 12:06 PM, Leon Romanovsky wrote:
> > On Mon, Mar 26, 2018 at 10:24:25AM -0500, Steve Wise wrote:
> >>
> >> On 3/26/2018 10:08 AM, Leon Romanovsky wrote:
> >>> On Mon, Mar 26, 2018 at 09:55:46AM -0500, Steve Wise wrote:
> >>>> On 3/26/2018 9:44 AM, David Ahern wrote:
> >>>>> On 3/26/18 8:30 AM, Steve Wise wrote:
> >>>>>> On 3/26/2018 9:17 AM, David Ahern wrote:
> >>>>>>> On 2/27/18 9:07 AM, Steve Wise wrote:
> >>>>>>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> >>>>>>>> index 5809f70..e55205b 100644
> >>>>>>>> --- a/rdma/rdma.h
> >>>>>>>> +++ b/rdma/rdma.h
> >>>>>>>> @@ -18,10 +18,12 @@
> >>>>>>>> #include <libmnl/libmnl.h>
> >>>>>>>> #include <rdma/rdma_netlink.h>
> >>>>>>>> #include <time.h>
> >>>>>>>> +#include <net/if_arp.h>
> >>>>>>>>
> >>>>>>>> #include "list.h"
> >>>>>>>> #include "utils.h"
> >>>>>>>> #include "json_writer.h"
> >>>>>>>> +#include <rdma/rdma_cma.h>
> >>>>>>>>
> >>>>>>> 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.
> Steve.
>
>
>
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 15:40 ` David Ahern
@ 2018-03-26 19:55 ` Steve Wise
0 siblings, 0 replies; 23+ messages in thread
From: Steve Wise @ 2018-03-26 19:55 UTC (permalink / raw)
To: David Ahern; +Cc: leon, stephen, netdev, linux-rdma
On 3/26/2018 10:40 AM, David Ahern wrote:
> On 2/27/18 9:07 AM, 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 <swise@opengridcomputing.com>
>> ---
>> rdma/rdma.h | 2 +
>> rdma/res.c | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>> rdma/utils.c | 5 ++
>> 3 files changed, 264 insertions(+), 1 deletion(-)
>>
>> diff --git a/rdma/rdma.h b/rdma/rdma.h
>> index 5809f70..e55205b 100644
>> --- a/rdma/rdma.h
>> +++ b/rdma/rdma.h
>> @@ -18,10 +18,12 @@
>> #include <libmnl/libmnl.h>
>> #include <rdma/rdma_netlink.h>
>> #include <time.h>
>> +#include <net/if_arp.h>
>>
>> #include "list.h"
>> #include "utils.h"
>> #include "json_writer.h"
>> +#include <rdma/rdma_cma.h>
>>
>> #define pr_err(args...) fprintf(stderr, ##args)
>> #define pr_out(args...) fprintf(stdout, ##args)
>> diff --git a/rdma/res.c b/rdma/res.c
>> index 62f5c54..1ef4f20 100644
>> --- a/rdma/res.c
>> +++ b/rdma/res.c
>> @@ -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");
>> return 0;
>> }
>>
>> @@ -433,6 +435,230 @@ static int res_qp_parse_cb(const struct nlmsghdr *nlh, void *data)
>> return MNL_CB_OK;
>> }
>>
>> +static void print_qp_type(struct rd *rd, uint32_t val)
>> +{
>> + if (rd->json_output)
>> + jsonw_string_field(rd->jw, "qp-type",
>> + qp_types_to_str(val));
>> + else
>> + pr_out("qp-type %s ", qp_types_to_str(val));
>> +}
>> +
>> +static const char *cm_id_state_to_str(uint8_t idx)
>> +{
>> + static const char * const cm_id_states_str[] = { "IDLE", "ADDR_QUERY",
>> + "ADDR_RESOLVED", "ROUTE_QUERY", "ROUTE_RESOLVED",
>> + "CONNECT", "DISCONNECT",
>> + "ADDR_BOUND", "LISTEN", "DEVICE_REMOVAL", "DESTROYING" };
>> +
> 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.
Ok. Will do.
>> @@ -457,11 +683,41 @@ filters qp_valid_filters[MAX_NUMBER_OF_FILTERS] = {{ .name = "link",
>>
>> RES_FUNC(res_qp, RDMA_NLDEV_CMD_RES_QP_GET, qp_valid_filters, false);
>>
>> +static const struct
>> +filters cm_id_valid_filters[MAX_NUMBER_OF_FILTERS] = {{ .name = "link",
>> + .is_number = false },
>> + { .name = "lqpn",
>> + .is_number = true },
>> + { .name = "qp-type",
>> + .is_number = false },
>> + { .name = "state",
>> + .is_number = false },
>> + { .name = "ps",
>> + .is_number = false },
>> + { .name = "dev-type",
>> + .is_number = false },
>> + { .name = "transport-type",
>> + .is_number = false },
>> + { .name = "pid",
>> + .is_number = true },
>> + { .name = "src-addr",
>> + .is_number = false },
>> + { .name = "src-port",
>> + .is_number = true },
>> + { .name = "dst-addr",
>> + .is_number = false },
>> + { .name = "dst-port",
>> + .is_number = true }};
>> +
> 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!
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 14:30 ` Steve Wise
2018-03-26 14:44 ` David Ahern
@ 2018-03-26 21:15 ` Jason Gunthorpe
2018-03-26 21:34 ` Steve Wise
1 sibling, 1 reply; 23+ messages in thread
From: Jason Gunthorpe @ 2018-03-26 21:15 UTC (permalink / raw)
To: Steve Wise; +Cc: David Ahern, leon, stephen, netdev, linux-rdma
On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise wrote:
>
>
> On 3/26/2018 9:17 AM, David Ahern wrote:
> > On 2/27/18 9:07 AM, Steve Wise wrote:
> >> diff --git a/rdma/rdma.h b/rdma/rdma.h
> >> index 5809f70..e55205b 100644
> >> +++ b/rdma/rdma.h
> >> @@ -18,10 +18,12 @@
> >> #include <libmnl/libmnl.h>
> >> #include <rdma/rdma_netlink.h>
> >> #include <time.h>
> >> +#include <net/if_arp.h>
> >>
> >> #include "list.h"
> >> #include "utils.h"
> >> #include "json_writer.h"
> >> +#include <rdma/rdma_cma.h>
> >>
> > 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
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 21:15 ` Jason Gunthorpe
@ 2018-03-26 21:34 ` Steve Wise
2018-03-26 22:30 ` Jason Gunthorpe
0 siblings, 1 reply; 23+ messages in thread
From: Steve Wise @ 2018-03-26 21:34 UTC (permalink / raw)
To: Jason Gunthorpe; +Cc: David Ahern, leon, stephen, netdev, linux-rdma
On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise wrote:
>>
>> On 3/26/2018 9:17 AM, David Ahern wrote:
>>> On 2/27/18 9:07 AM, Steve Wise wrote:
>>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
>>>> index 5809f70..e55205b 100644
>>>> +++ b/rdma/rdma.h
>>>> @@ -18,10 +18,12 @@
>>>> #include <libmnl/libmnl.h>
>>>> #include <rdma/rdma_netlink.h>
>>>> #include <time.h>
>>>> +#include <net/if_arp.h>
>>>>
>>>> #include "list.h"
>>>> #include "utils.h"
>>>> #include "json_writer.h"
>>>> +#include <rdma/rdma_cma.h>
>>>>
>>> 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.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 21:34 ` Steve Wise
@ 2018-03-26 22:30 ` Jason Gunthorpe
2018-03-27 3:21 ` Leon Romanovsky
0 siblings, 1 reply; 23+ messages in thread
From: Jason Gunthorpe @ 2018-03-26 22:30 UTC (permalink / raw)
To: Steve Wise; +Cc: David Ahern, leon, stephen, netdev, linux-rdma
On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise wrote:
>
> On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise wrote:
> >>
> >> On 3/26/2018 9:17 AM, David Ahern wrote:
> >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> >>>> index 5809f70..e55205b 100644
> >>>> +++ b/rdma/rdma.h
> >>>> @@ -18,10 +18,12 @@
> >>>> #include <libmnl/libmnl.h>
> >>>> #include <rdma/rdma_netlink.h>
> >>>> #include <time.h>
> >>>> +#include <net/if_arp.h>
> >>>>
> >>>> #include "list.h"
> >>>> #include "utils.h"
> >>>> #include "json_writer.h"
> >>>> +#include <rdma/rdma_cma.h>
> >>>>
> >>> 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
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-26 22:30 ` Jason Gunthorpe
@ 2018-03-27 3:21 ` Leon Romanovsky
2018-03-27 14:44 ` Jason Gunthorpe
0 siblings, 1 reply; 23+ messages in thread
From: Leon Romanovsky @ 2018-03-27 3:21 UTC (permalink / raw)
To: Jason Gunthorpe; +Cc: Steve Wise, David Ahern, stephen, netdev, linux-rdma
[-- Attachment #1: Type: text/plain, Size: 2098 bytes --]
On Mon, Mar 26, 2018 at 04:30:33PM -0600, Jason Gunthorpe wrote:
> On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise wrote:
> >
> > On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise wrote:
> > >>
> > >> On 3/26/2018 9:17 AM, David Ahern wrote:
> > >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> > >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> > >>>> index 5809f70..e55205b 100644
> > >>>> +++ b/rdma/rdma.h
> > >>>> @@ -18,10 +18,12 @@
> > >>>> #include <libmnl/libmnl.h>
> > >>>> #include <rdma/rdma_netlink.h>
> > >>>> #include <time.h>
> > >>>> +#include <net/if_arp.h>
> > >>>>
> > >>>> #include "list.h"
> > >>>> #include "utils.h"
> > >>>> #include "json_writer.h"
> > >>>> +#include <rdma/rdma_cma.h>
> > >>>>
> > >>> 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
>
> Jason
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-27 3:21 ` Leon Romanovsky
@ 2018-03-27 14:44 ` Jason Gunthorpe
2018-03-27 15:15 ` Leon Romanovsky
0 siblings, 1 reply; 23+ messages in thread
From: Jason Gunthorpe @ 2018-03-27 14:44 UTC (permalink / raw)
To: Leon Romanovsky; +Cc: Steve Wise, David Ahern, stephen, netdev, linux-rdma
On Tue, Mar 27, 2018 at 06:21:41AM +0300, Leon Romanovsky wrote:
> On Mon, Mar 26, 2018 at 04:30:33PM -0600, Jason Gunthorpe wrote:
> > On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise wrote:
> > >
> > > On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > > > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise wrote:
> > > >>
> > > >> On 3/26/2018 9:17 AM, David Ahern wrote:
> > > >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> > > >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> > > >>>> index 5809f70..e55205b 100644
> > > >>>> +++ b/rdma/rdma.h
> > > >>>> @@ -18,10 +18,12 @@
> > > >>>> #include <libmnl/libmnl.h>
> > > >>>> #include <rdma/rdma_netlink.h>
> > > >>>> #include <time.h>
> > > >>>> +#include <net/if_arp.h>
> > > >>>>
> > > >>>> #include "list.h"
> > > >>>> #include "utils.h"
> > > >>>> #include "json_writer.h"
> > > >>>> +#include <rdma/rdma_cma.h>
> > > >>>>
> > > >>> 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
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-27 14:44 ` Jason Gunthorpe
@ 2018-03-27 15:15 ` Leon Romanovsky
2018-03-27 15:23 ` Jason Gunthorpe
0 siblings, 1 reply; 23+ messages in thread
From: Leon Romanovsky @ 2018-03-27 15:15 UTC (permalink / raw)
To: Jason Gunthorpe; +Cc: Steve Wise, David Ahern, stephen, netdev, linux-rdma
[-- Attachment #1: Type: text/plain, Size: 2945 bytes --]
On Tue, Mar 27, 2018 at 08:44:55AM -0600, Jason Gunthorpe wrote:
> On Tue, Mar 27, 2018 at 06:21:41AM +0300, Leon Romanovsky wrote:
> > On Mon, Mar 26, 2018 at 04:30:33PM -0600, Jason Gunthorpe wrote:
> > > On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise wrote:
> > > >
> > > > On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > > > > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise wrote:
> > > > >>
> > > > >> On 3/26/2018 9:17 AM, David Ahern wrote:
> > > > >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> > > > >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> > > > >>>> index 5809f70..e55205b 100644
> > > > >>>> +++ b/rdma/rdma.h
> > > > >>>> @@ -18,10 +18,12 @@
> > > > >>>> #include <libmnl/libmnl.h>
> > > > >>>> #include <rdma/rdma_netlink.h>
> > > > >>>> #include <time.h>
> > > > >>>> +#include <net/if_arp.h>
> > > > >>>>
> > > > >>>> #include "list.h"
> > > > >>>> #include "utils.h"
> > > > >>>> #include "json_writer.h"
> > > > >>>> +#include <rdma/rdma_cma.h>
> > > > >>>>
> > > > >>> 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/
>
> Jason
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-27 15:15 ` Leon Romanovsky
@ 2018-03-27 15:23 ` Jason Gunthorpe
2018-03-27 15:45 ` Steve Wise
0 siblings, 1 reply; 23+ messages in thread
From: Jason Gunthorpe @ 2018-03-27 15:23 UTC (permalink / raw)
To: Leon Romanovsky; +Cc: Steve Wise, David Ahern, stephen, netdev, linux-rdma
On Tue, Mar 27, 2018 at 06:15:44PM +0300, Leon Romanovsky wrote:
> On Tue, Mar 27, 2018 at 08:44:55AM -0600, Jason Gunthorpe wrote:
> > On Tue, Mar 27, 2018 at 06:21:41AM +0300, Leon Romanovsky wrote:
> > > On Mon, Mar 26, 2018 at 04:30:33PM -0600, Jason Gunthorpe wrote:
> > > > On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise wrote:
> > > > >
> > > > > On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > > > > > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise wrote:
> > > > > >>
> > > > > >> On 3/26/2018 9:17 AM, David Ahern wrote:
> > > > > >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> > > > > >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> > > > > >>>> index 5809f70..e55205b 100644
> > > > > >>>> +++ b/rdma/rdma.h
> > > > > >>>> @@ -18,10 +18,12 @@
> > > > > >>>> #include <libmnl/libmnl.h>
> > > > > >>>> #include <rdma/rdma_netlink.h>
> > > > > >>>> #include <time.h>
> > > > > >>>> +#include <net/if_arp.h>
> > > > > >>>>
> > > > > >>>> #include "list.h"
> > > > > >>>> #include "utils.h"
> > > > > >>>> #include "json_writer.h"
> > > > > >>>> +#include <rdma/rdma_cma.h>
> > > > > >>>>
> > > > > >>> 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
^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-27 15:23 ` Jason Gunthorpe
@ 2018-03-27 15:45 ` Steve Wise
2018-03-27 16:01 ` Leon Romanovsky
0 siblings, 1 reply; 23+ messages in thread
From: Steve Wise @ 2018-03-27 15:45 UTC (permalink / raw)
To: 'Jason Gunthorpe', 'Leon Romanovsky'
Cc: 'David Ahern', stephen, netdev, linux-rdma
>
> On Tue, Mar 27, 2018 at 06:15:44PM +0300, Leon Romanovsky wrote:
> > On Tue, Mar 27, 2018 at 08:44:55AM -0600, Jason Gunthorpe wrote:
> > > On Tue, Mar 27, 2018 at 06:21:41AM +0300, Leon Romanovsky wrote:
> > > > On Mon, Mar 26, 2018 at 04:30:33PM -0600, Jason Gunthorpe wrote:
> > > > > On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise wrote:
> > > > > >
> > > > > > On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > > > > > > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise wrote:
> > > > > > >>
> > > > > > >> On 3/26/2018 9:17 AM, David Ahern wrote:
> > > > > > >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> > > > > > >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> > > > > > >>>> index 5809f70..e55205b 100644
> > > > > > >>>> +++ b/rdma/rdma.h
> > > > > > >>>> @@ -18,10 +18,12 @@
> > > > > > >>>> #include <libmnl/libmnl.h>
> > > > > > >>>> #include <rdma/rdma_netlink.h>
> > > > > > >>>> #include <time.h>
> > > > > > >>>> +#include <net/if_arp.h>
> > > > > > >>>>
> > > > > > >>>> #include "list.h"
> > > > > > >>>> #include "utils.h"
> > > > > > >>>> #include "json_writer.h"
> > > > > > >>>> +#include <rdma/rdma_cma.h>
> > > > > > >>>>
> > > > > > >>> 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.
>
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.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-27 15:45 ` Steve Wise
@ 2018-03-27 16:01 ` Leon Romanovsky
2018-03-27 16:20 ` Steve Wise
0 siblings, 1 reply; 23+ messages in thread
From: Leon Romanovsky @ 2018-03-27 16:01 UTC (permalink / raw)
To: Steve Wise
Cc: 'Jason Gunthorpe', 'David Ahern', stephen, netdev,
linux-rdma
[-- Attachment #1: Type: text/plain, Size: 3987 bytes --]
On Tue, Mar 27, 2018 at 10:45:30AM -0500, Steve Wise wrote:
>
> >
> > On Tue, Mar 27, 2018 at 06:15:44PM +0300, Leon Romanovsky wrote:
> > > On Tue, Mar 27, 2018 at 08:44:55AM -0600, Jason Gunthorpe wrote:
> > > > On Tue, Mar 27, 2018 at 06:21:41AM +0300, Leon Romanovsky wrote:
> > > > > On Mon, Mar 26, 2018 at 04:30:33PM -0600, Jason Gunthorpe wrote:
> > > > > > On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise wrote:
> > > > > > >
> > > > > > > On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > > > > > > > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise wrote:
> > > > > > > >>
> > > > > > > >> On 3/26/2018 9:17 AM, David Ahern wrote:
> > > > > > > >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> > > > > > > >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> > > > > > > >>>> index 5809f70..e55205b 100644
> > > > > > > >>>> +++ b/rdma/rdma.h
> > > > > > > >>>> @@ -18,10 +18,12 @@
> > > > > > > >>>> #include <libmnl/libmnl.h>
> > > > > > > >>>> #include <rdma/rdma_netlink.h>
> > > > > > > >>>> #include <time.h>
> > > > > > > >>>> +#include <net/if_arp.h>
> > > > > > > >>>>
> > > > > > > >>>> #include "list.h"
> > > > > > > >>>> #include "utils.h"
> > > > > > > >>>> #include "json_writer.h"
> > > > > > > >>>> +#include <rdma/rdma_cma.h>
> > > > > > > >>>>
> > > > > > > >>> 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.
> >
>
> 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
>
> Steve.
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-27 16:01 ` Leon Romanovsky
@ 2018-03-27 16:20 ` Steve Wise
2018-03-27 16:30 ` Leon Romanovsky
0 siblings, 1 reply; 23+ messages in thread
From: Steve Wise @ 2018-03-27 16:20 UTC (permalink / raw)
To: 'Leon Romanovsky'
Cc: 'Jason Gunthorpe', 'David Ahern', stephen, netdev,
linux-rdma
> On Tue, Mar 27, 2018 at 10:45:30AM -0500, Steve Wise wrote:
> >
> > >
> > > On Tue, Mar 27, 2018 at 06:15:44PM +0300, Leon Romanovsky wrote:
> > > > On Tue, Mar 27, 2018 at 08:44:55AM -0600, Jason Gunthorpe wrote:
> > > > > On Tue, Mar 27, 2018 at 06:21:41AM +0300, Leon Romanovsky
> wrote:
> > > > > > On Mon, Mar 26, 2018 at 04:30:33PM -0600, Jason Gunthorpe
> wrote:
> > > > > > > On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise wrote:
> > > > > > > >
> > > > > > > > On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > > > > > > > > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise
> wrote:
> > > > > > > > >>
> > > > > > > > >> On 3/26/2018 9:17 AM, David Ahern wrote:
> > > > > > > > >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> > > > > > > > >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> > > > > > > > >>>> index 5809f70..e55205b 100644
> > > > > > > > >>>> +++ b/rdma/rdma.h
> > > > > > > > >>>> @@ -18,10 +18,12 @@
> > > > > > > > >>>> #include <libmnl/libmnl.h>
> > > > > > > > >>>> #include <rdma/rdma_netlink.h>
> > > > > > > > >>>> #include <time.h>
> > > > > > > > >>>> +#include <net/if_arp.h>
> > > > > > > > >>>>
> > > > > > > > >>>> #include "list.h"
> > > > > > > > >>>> #include "utils.h"
> > > > > > > > >>>> #include "json_writer.h"
> > > > > > > > >>>> +#include <rdma/rdma_cma.h>
> > > > > > > > >>>>
> > > > > > > > >>> 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.
> > >
> >
> > 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
I'm pretty sure port space is needed. That struct is used to create a user
mode cm_id...
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-27 16:20 ` Steve Wise
@ 2018-03-27 16:30 ` Leon Romanovsky
2018-03-27 16:38 ` Steve Wise
0 siblings, 1 reply; 23+ messages in thread
From: Leon Romanovsky @ 2018-03-27 16:30 UTC (permalink / raw)
To: Steve Wise
Cc: 'Jason Gunthorpe', 'David Ahern', stephen, netdev,
linux-rdma
[-- Attachment #1: Type: text/plain, Size: 4629 bytes --]
On Tue, Mar 27, 2018 at 11:20:25AM -0500, Steve Wise wrote:
> > On Tue, Mar 27, 2018 at 10:45:30AM -0500, Steve Wise wrote:
> > >
> > > >
> > > > On Tue, Mar 27, 2018 at 06:15:44PM +0300, Leon Romanovsky wrote:
> > > > > On Tue, Mar 27, 2018 at 08:44:55AM -0600, Jason Gunthorpe wrote:
> > > > > > On Tue, Mar 27, 2018 at 06:21:41AM +0300, Leon Romanovsky
> > wrote:
> > > > > > > On Mon, Mar 26, 2018 at 04:30:33PM -0600, Jason Gunthorpe
> > wrote:
> > > > > > > > On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise wrote:
> > > > > > > > >
> > > > > > > > > On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > > > > > > > > > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise
> > wrote:
> > > > > > > > > >>
> > > > > > > > > >> On 3/26/2018 9:17 AM, David Ahern wrote:
> > > > > > > > > >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> > > > > > > > > >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> > > > > > > > > >>>> index 5809f70..e55205b 100644
> > > > > > > > > >>>> +++ b/rdma/rdma.h
> > > > > > > > > >>>> @@ -18,10 +18,12 @@
> > > > > > > > > >>>> #include <libmnl/libmnl.h>
> > > > > > > > > >>>> #include <rdma/rdma_netlink.h>
> > > > > > > > > >>>> #include <time.h>
> > > > > > > > > >>>> +#include <net/if_arp.h>
> > > > > > > > > >>>>
> > > > > > > > > >>>> #include "list.h"
> > > > > > > > > >>>> #include "utils.h"
> > > > > > > > > >>>> #include "json_writer.h"
> > > > > > > > > >>>> +#include <rdma/rdma_cma.h>
> > > > > > > > > >>>>
> > > > > > > > > >>> 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.
> > > >
> > >
> > > 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
>
> I'm pretty sure port space is needed. That struct is used to create a user
> mode cm_id...
Sorry, it is RDMA_PS_SDP.
Thanks
>
>
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information
2018-03-27 16:30 ` Leon Romanovsky
@ 2018-03-27 16:38 ` Steve Wise
0 siblings, 0 replies; 23+ messages in thread
From: Steve Wise @ 2018-03-27 16:38 UTC (permalink / raw)
To: 'Leon Romanovsky'
Cc: 'Jason Gunthorpe', 'David Ahern', stephen, netdev,
linux-rdma
>
> On Tue, Mar 27, 2018 at 11:20:25AM -0500, Steve Wise wrote:
> > > On Tue, Mar 27, 2018 at 10:45:30AM -0500, Steve Wise wrote:
> > > >
> > > > >
> > > > > On Tue, Mar 27, 2018 at 06:15:44PM +0300, Leon Romanovsky wrote:
> > > > > > On Tue, Mar 27, 2018 at 08:44:55AM -0600, Jason Gunthorpe
> wrote:
> > > > > > > On Tue, Mar 27, 2018 at 06:21:41AM +0300, Leon Romanovsky
> > > wrote:
> > > > > > > > On Mon, Mar 26, 2018 at 04:30:33PM -0600, Jason Gunthorpe
> > > wrote:
> > > > > > > > > On Mon, Mar 26, 2018 at 04:34:44PM -0500, Steve Wise
> wrote:
> > > > > > > > > >
> > > > > > > > > > On 3/26/2018 4:15 PM, Jason Gunthorpe wrote:
> > > > > > > > > > > On Mon, Mar 26, 2018 at 09:30:41AM -0500, Steve Wise
> > > wrote:
> > > > > > > > > > >>
> > > > > > > > > > >> On 3/26/2018 9:17 AM, David Ahern wrote:
> > > > > > > > > > >>> On 2/27/18 9:07 AM, Steve Wise wrote:
> > > > > > > > > > >>>> diff --git a/rdma/rdma.h b/rdma/rdma.h
> > > > > > > > > > >>>> index 5809f70..e55205b 100644
> > > > > > > > > > >>>> +++ b/rdma/rdma.h
> > > > > > > > > > >>>> @@ -18,10 +18,12 @@
> > > > > > > > > > >>>> #include <libmnl/libmnl.h>
> > > > > > > > > > >>>> #include <rdma/rdma_netlink.h>
> > > > > > > > > > >>>> #include <time.h>
> > > > > > > > > > >>>> +#include <net/if_arp.h>
> > > > > > > > > > >>>>
> > > > > > > > > > >>>> #include "list.h"
> > > > > > > > > > >>>> #include "utils.h"
> > > > > > > > > > >>>> #include "json_writer.h"
> > > > > > > > > > >>>> +#include <rdma/rdma_cma.h>
> > > > > > > > > > >>>>
> > > > > > > > > > >>> 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.
> > > > >
> > > >
> > > > 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
> >
> > I'm pretty sure port space is needed. That struct is used to create a
user
> > mode cm_id...
>
> Sorry, it is RDMA_PS_SDP.
>
> Thanks
Right. Will do.
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2018-03-27 16:38 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.1520020530.git.swise@opengridcomputing.com>
[not found] ` <743dc7a5306f9b3368fcd4c143cdd822250444a6.1520020530.git.swise@opengridcomputing.com>
2018-03-26 14:17 ` [PATCH v2 iproute2-next 3/6] rdma: Add CM_ID resource tracking information David Ahern
2018-03-26 14:30 ` Steve Wise
2018-03-26 14:44 ` David Ahern
2018-03-26 14:55 ` Steve Wise
2018-03-26 15:08 ` Leon Romanovsky
2018-03-26 15:24 ` Steve Wise
2018-03-26 17:06 ` Leon Romanovsky
2018-03-26 17:13 ` Steve Wise
2018-03-26 17:27 ` Leon Romanovsky
2018-03-26 21:15 ` Jason Gunthorpe
2018-03-26 21:34 ` Steve Wise
2018-03-26 22:30 ` Jason Gunthorpe
2018-03-27 3:21 ` Leon Romanovsky
2018-03-27 14:44 ` Jason Gunthorpe
2018-03-27 15:15 ` Leon Romanovsky
2018-03-27 15:23 ` Jason Gunthorpe
2018-03-27 15:45 ` Steve Wise
2018-03-27 16:01 ` Leon Romanovsky
2018-03-27 16:20 ` Steve Wise
2018-03-27 16:30 ` Leon Romanovsky
2018-03-27 16:38 ` Steve Wise
2018-03-26 15:40 ` David Ahern
2018-03-26 19:55 ` Steve Wise
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).