Message ID | 20210428114231.96944-3-galpress@amazon.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | David Ahern |
Headers | show |
Series | Add copy-on-fork to get sys command | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On Wed, Apr 28, 2021 at 02:42:31PM +0300, Gal Pressman wrote: > 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 I don't think that we need to print them on separate lines. $ rdma sys netns shared copy-on-fork on > > Signed-off-by: Gal Pressman <galpress@amazon.com> > --- > 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); Let's simplify it bool cow = false; + if (tb[RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK]) + cow = mnl_attr_get_u8(tb[RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK]); + + print_color_on_off(PRINT_ANY, COLOR_NONE, "copy-on-fork", "copy-on-fork %s", cow); > + > return MNL_CB_OK; > } > > -- > 2.31.1 >
On 28/04/2021 15:00, Leon Romanovsky wrote: > On Wed, Apr 28, 2021 at 02:42:31PM +0300, Gal Pressman wrote: >> 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 > > I don't think that we need to print them on separate lines. > $ rdma sys > netns shared copy-on-fork on Ack. >> Signed-off-by: Gal Pressman <galpress@amazon.com> >> --- >> 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); > > Let's simplify it > bool cow = false; > > + if (tb[RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK]) > + cow = mnl_attr_get_u8(tb[RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK]); > + > + print_color_on_off(PRINT_ANY, COLOR_NONE, "copy-on-fork", "copy-on-fork %s", cow); Ack (changed cow -> cof). Thanks
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; }
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 <galpress@amazon.com> --- rdma/sys.c | 9 +++++++++ 1 file changed, 9 insertions(+)