rdma: IB device rename
Subsystems (3)
cover rdma: IB device rename
From: Leon Romanovsky <[email protected]>
Changelog:v0->v1:
* Added Steve's ROB on first three patches.
* Updated manualRFC->v0
* Dropped RFC tag after kernel part was accepted
* Updated commit message of first patch to include correct SHA1
-----------------------------------------------------------------------
Hi,
This is comprehensive part of kernel series posted earlier. The kernel part is not accepted yet, so first patch will have different commit message with different commit SHA1. This is why it is marked as RFC.
An example:
[leonro@server /]$ lspci |grep -i Ether
00:08.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:09.0 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4] [leonro@server /]$ sudo rdma dev
1: mlx5_0: node_type ca fw 3.8.9999 node_guid 5254:00c0:fe12:3455 sys_image_guid 5254:00c0:fe12:3455 [leonro@server /]$ sudo rdma dev set mlx5_0 name hfi1_0
[leonro@server /]$ sudo rdma dev
1: hfi1_0: node_type ca fw 3.8.9999 node_guid 5254:00c0:fe12:3455 sys_image_guid 5254:00c0:fe12:3455
Thanks
Leon Romanovsky (4):
rdma: Update kernel include file to support IB device renaming
rdma: Introduce command execution helper with required device name
rdma: Add an option to rename IB device interface
rdma: Document IB device renaming option
man/man8/rdma-dev.8 | 13 +++++++++++++ rdma/dev.c | 35 +++++++++++++++++++++++++++++++++++ rdma/include/uapi/rdma/rdma_netlink.h | 3 ++- rdma/rdma.h | 1 + rdma/utils.c | 10 ++++++++++ 5 files changed, 61 insertions(+), 1 deletion(-)
PATCH 1/4 rdma: Update kernel include file to support IB device renaming
From: Leon Romanovsky <[email protected]>
Bring kernel header file changes upto commit 05d940d3a3ec ("RDMA/nldev: Allow IB device rename through RDMA netlink")
--- rdma/include/uapi/rdma/rdma_netlink.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
rdma/include/uapi/rdma/rdma_netlink.h +2 -1
@@ -227,8 +227,9 @@ enum rdma_nldev_command {RDMA_NLDEV_CMD_UNSPEC ,RDMA_NLDEV_CMD_GET ,/* can dump */ +RDMA_NLDEV_CMD_SET , -/* 2 - 4 are free to use */ +/* 3 - 4 are free to use */ RDMA_NLDEV_CMD_PORT_GET = 5, /* can dump */
Signature · 1 line
2.14.4
PATCH 2/4 rdma: Introduce command execution helper with required device name
In reply to Leon RomanovskyFrom: Leon Romanovsky <[email protected]>
In contradiction to various show commands, the set command explicitly requires to use device name as an argument. Provide new command execution helper which enforces it.
--- rdma/rdma.h | 1 + rdma/utils.c | 10 ++++++++++ 2 files changed, 11 insertions(+)
rdma/rdma.h +1 -0
@@ -90,6 +90,7 @@ int cmd_link(struct rd *rd);int cmd_res (struct rd *rd);int rd_exec_cmd (struct rd *rd,const struct rd_cmd *c,const char *str);int rd_exec_dev (struct rd *rd,int (*cb)(struct rd *rd)); +int rd_exec_require_dev (struct rd *rd,int (*cb)(struct rd *rd));int rd_exec_link (struct rd *rd,int (*cb)(struct rd *rd),bool strict_port);void rd_free (struct rd *rd);int rd_set_arg_to_devname (struct rd *rd);
rdma/utils.c +10 -0
@@ -577,6 +577,16 @@ out:return ret; } +int rd_exec_require_dev (struct rd *rd,int (*cb)(struct rd *rd)) +{ +if (rd_no_arg (rd)) { +pr_err ("Please provide device name.\n" ); +return -EINVAL ; + } + +return rd_exec_dev (rd, cb); +} +int rd_exec_cmd (struct rd *rd,const struct rd_cmd *cmds,const char *str) {const struct rd_cmd *c;
Signature · 1 line
2.14.4
PATCH 3/4 rdma: Add an option to rename IB device interface
In reply to Leon RomanovskyFrom: Leon Romanovsky <[email protected]>
Enrich rdmatool with an option to rename IB devices, the command interface follows Iproute2 convention:
"rdma dev set [OLD-DEVNAME] name NEW-DEVNAME"
--- rdma/dev.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+)
rdma/dev.c +35 -0
@@ -14,6 +14,7 @@static int dev_help (struct rd *rd) {pr_out ("Usage: %s dev show [DEV]\n" , rd->filename); +pr_out (" %s dev set [DEV] name DEVNAME\n" , rd->filename);return 0 ; }
@@ -240,17 +241,51 @@ static int dev_one_show(struct rd *rd)return rd_exec_cmd (rd, cmds,"parameter" ); } +static int dev_set_name (struct rd *rd) +{ +uint32_t seq; + +if (rd_no_arg (rd)) { +pr_err ("Please provide device new name.\n" ); +return -EINVAL ; + } + +rd_prepare_msg (rd,RDMA_NLDEV_CMD_SET , + &seq, (NLM_F_REQUEST |NLM_F_ACK )); +mnl_attr_put_u32 (rd->nlh,RDMA_NLDEV_ATTR_DEV_INDEX , rd->dev_idx); +mnl_attr_put_strz (rd->nlh,RDMA_NLDEV_ATTR_DEV_NAME ,rd_argv (rd)); + +return rd_send_msg (rd); +} + +static int dev_one_set (struct rd *rd) +{ +const struct rd_cmd cmds[] = { + {NULL , dev_help}, + {"name" , dev_set_name}, + {0 } + }; + +return rd_exec_cmd (rd, cmds,"parameter" ); +} +static int dev_show (struct rd *rd) {return rd_exec_dev (rd, dev_one_show); } +static int dev_set (struct rd *rd) +{ +return rd_exec_require_dev (rd, dev_one_set); +} +int cmd_dev (struct rd *rd) {const struct rd_cmd cmds[] = { {NULL , dev_show }, {"show" , dev_show }, {"list" , dev_show }, + {"set" , dev_set }, {"help" , dev_help }, {0 } };
Signature · 1 line
2.14.4
PATCH 4/4 rdma: Document IB device renaming option
In reply to Leon RomanovskyFrom: Leon Romanovsky <[email protected]>
[leonro@server /]$ lspci |grep -i Ether
00:08.0 Ethernet controller: Red Hat, Inc. Virtio network device 00:09.0 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4] [leonro@server /]$ sudo rdma dev
1: mlx5_0: node_type ca fw 3.8.9999 node_guid 5254:00c0:fe12:3455 sys_image_guid 5254:00c0:fe12:3455
[leonro@server /]$ sudo rdma dev set mlx5_0 name hfi1_0 [leonro@server /]$ sudo rdma dev
1: hfi1_0: node_type ca fw 3.8.9999 node_guid 5254:00c0:fe12:3455 sys_image_guid 5254:00c0:fe12:3455
--- man/man8/rdma-dev.8 | 13 +++++++++++++ 1 file changed, 13 insertions(+)
man/man8/rdma-dev.8 +13 -0
@@ -22,6 +22,12 @@ rdmak-dev \- RDMA device configuration .B rdma dev show .RI "[ " DEV " ]" +.ti -8 +.B rdma dev set +.RI "[ " DEV " ]" +.BR name +.BR NEWNAME + .ti -8 .B rdma dev help
@@ -33,6 +39,8 @@ rdmak-dev \- RDMA device configuration - specifies the RDMA device to show. If this argument is omitted all devices are listed. +.SS rdma dev set - rename rdma device + .SH "EXAMPLES" .PP rdma dev
@@ -45,6 +53,11 @@ rdma dev show mlx5_3 Shows the state of specified RDMA device. .RE .PP +rdma dev set mlx5_3 name rdma_0 +.RS 4 +Renames the mlx5_3 device to be named rdma_0. +.RE +.PP .SH SEE ALSO .BR rdma (8),
Signature · 1 line
2.14.4
David Ahern
AppliedRe: [PATCH iproute2-next v1 1/4] rdma: Update kernel include file to support IB device renaming
In reply to Leon RomanovskyQuoted 11 lines · Leon Romanovsky
From: Leon Romanovsky <[email protected]>
Bring kernel header file changes upto commit
05d940d3a3ec("RDMA/nldev: Allow IB device rename through RDMA netlink")Signed-off-by Leon Romanovsky <[email protected]>Reviewed-by Steve Wise <[email protected]>--- rdma/include/uapi/rdma/rdma_netlink.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
applied to iproute2-next. Thanks
David Ahern
AppliedRe: [PATCH iproute2-next v1 2/4] rdma: Introduce command execution helper with required device name
In reply to Leon RomanovskyQuoted 6 lines · Leon Romanovsky
From: Leon Romanovsky <[email protected]>
In contradiction to various show commands, the set command explicitly requires to use device name as an argument. Provide new command execution helper which enforces it.
Quoted 7 lines
Signed-off-by Leon Romanovsky <[email protected]>Reviewed-by Steve Wise <[email protected]>--- rdma/rdma.h | 1 + rdma/utils.c | 10 ++++++++++ 2 files changed, 11 insertions(+)
applied to iproute2-next. Thanks
David Ahern
AppliedRe: [PATCH iproute2-next v1 3/4] rdma: Add an option to rename IB device interface
In reply to Leon RomanovskyQuoted 6 lines · Leon Romanovsky
From: Leon Romanovsky <[email protected]>
Enrich rdmatool with an option to rename IB devices, the command interface follows Iproute2 convention:
"rdma dev set [OLD-DEVNAME] name NEW-DEVNAME"
Quoted 6 lines
Signed-off-by Leon Romanovsky <[email protected]>Reviewed-by Steve Wise <[email protected]>--- rdma/dev.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+)
applied to iproute2-next. Thanks
Re: [PATCH iproute2-next v1 4/4] rdma: Document IB device renaming option
In reply to Leon RomanovskyQuoted 18 lines · Leon Romanovsky
man/man8/rdma-dev.8 +6
-0@@ -22,6 +22,12 @@ rdmak-dev \- RDMA device configuration .B rdma dev show .RI "[ " DEV " ]" +.ti -8 +.B rdma dev set +.RI "[ " DEV " ]" +.BR name +.BR NEWNAME + .ti -8 .B rdma dev help
man/man8/rdma-dev.8 rdmak-dev \- RDMA device configuration · line 43
Quoted 5 lines
man/man8/rdma-dev.8 +2
-0@@ -33,6 +39,8 @@ rdmak-dev \- RDMA device configuration - specifies the RDMA device to show. If this argument is omitted all devices are listed. +.SS rdma dev set - rename rdma device +
'nroff -u0 -Tlp -man man/man8/rdma-dev.8' shows that you lost the spacing between that line and the Examples line.
rdma dev set - rename rdma device
EXAMPLES
rdma dev
Shows the state of all RDMA devices on the system.
...
man/man8/rdma-dev.8 rdma dev show mlx5_3 · line 58
Quoted 10 lines
man/man8/rdma-dev.8 +3
-0.SH "EXAMPLES" .PP rdma dev@@ -45,6 +53,11 @@ rdma dev show mlx5_3 Shows the state of specified RDMA device. .RE .PP +rdma dev set mlx5_3 name rdma_0 +.RS 4 +Renames the mlx5_3 device to be named rdma_0.
That does not read well. I suggest dropping the 'be named' to make it "Renames the mlx5_3 device to rdma_0."
Quoted 6 lines
man/man8/rdma-dev.8 +2
-0+.RE +.PP .SH SEE ALSO .BR rdma (8),
Re: [PATCH iproute2-next v1 4/4] rdma: Document IB device renaming option
Quoted 28 lines · David Ahern
Quoted 18 lines · Leon Romanovsky
man/man8/rdma-dev.8 +6
-0@@ -22,6 +22,12 @@ rdmak-dev \- RDMA device configuration .B rdma dev show .RI "[ " DEV " ]" +.ti -8 +.B rdma dev set +.RI "[ " DEV " ]" +.BR name +.BR NEWNAME + .ti -8 .B rdma dev helpman/man8/rdma-dev.8 rdmak-dev \- RDMA device configuration · line 43
Quoted 5 lines
man/man8/rdma-dev.8 +2
-0@@ -33,6 +39,8 @@ rdmak-dev \- RDMA device configuration - specifies the RDMA device to show. If this argument is omitted all devices are listed. +.SS rdma dev set - rename rdma device +'nroff -u0 -Tlp -man man/man8/rdma-dev.8' shows that you lost the spacing between that line and the Examples line.
Quoted 4 lines
rdma dev set - rename rdma device
EXAMPLES
rdma dev
Shows the state of all RDMA devices on the system.
Thanks, sending v2 now.
Quoted 24 lines
...
man/man8/rdma-dev.8 rdma dev show mlx5_3 · line 58
Quoted 10 lines
.SH "EXAMPLES"
.PP
rdma devman/man8/rdma-dev.8 +3
-0@@ -45,6 +53,11 @@ rdma dev show mlx5_3 Shows the state of specified RDMA device. .RE .PP +rdma dev set mlx5_3 name rdma_0 +.RS 4 +Renames the mlx5_3 device to be named rdma_0.That does not read well. I suggest dropping the 'be named' to make it "Renames the
mlx5_3device tordma_0."Quoted 6 lines
man/man8/rdma-dev.8 +2
-0+.RE +.PP .SH SEE ALSO .BR rdma (8),