Subject: [PATCH iproute2-next 2/2] rdma: Add copy-on-fork to get sys command

From: Gal Pressman <[email-masked]>
Date: Wed, 28 Apr 2021 14:42:31 +0300

The new attribute indicates that the kernel copies DMA pages on fork,
hence fork support through madvise and MADV_DONTFORK is not needed.

If the attribute is not reported (expected on older kernels),
copy-on-fork is disabled.

Example:
$ rdma sys
netns shared
copy-on-fork on

Signed-off-by: Gal Pressman <[email-masked]>
---
 rdma/sys.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/rdma/sys.c b/rdma/sys.c
index 8fb565d70598..dd9c6da33e2a 100644
--- a/rdma/sys.c
+++ b/rdma/sys.c
@@ -38,6 +38,15 @@ static int sys_show_parse_cb(const struct nlmsghdr *nlh, void *data)
 		print_color_string(PRINT_ANY, COLOR_NONE, "netns", "netns %s\n",
 				   mode_str);
 	}
+
+	if (tb[RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK])
+		print_color_on_off(PRINT_ANY, COLOR_NONE, "copy-on-fork",
+				   "copy-on-fork %s\n",
+				   mnl_attr_get_u8(tb[RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK]));
+	else
+		print_color_on_off(PRINT_ANY, COLOR_NONE, "copy-on-fork",
+				   "copy-on-fork %s\n", false);
+
 	return MNL_CB_OK;
 }
 
-- 
2.31.1