From: Leon Romanovsky <leon@kernel.org>
To: Gal Pressman <galpress@amazon.com>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
Doug Ledford <dledford@redhat.com>,
linux-rdma@vger.kernel.org,
Alexander Matushevsky <matua@amazon.com>,
Yossi Leybovich <sleybo@amazon.com>,
Jason Gunthorpe <jgg@ziepe.ca>
Subject: Re: [PATCH for-next] RDMA/nldev: Add copy-on-fork attribute to get sys command
Date: Mon, 5 Apr 2021 15:39:57 +0300 [thread overview]
Message-ID: <YGsFHWU8Hqd5LADT@unreal> (raw)
In-Reply-To: <d8ec4f81-25a6-7243-12c4-af4f5b64a27f@amazon.com>
On Mon, Apr 05, 2021 at 03:15:18PM +0300, Gal Pressman wrote:
> On 05/04/2021 14:57, Leon Romanovsky wrote:
> > On Mon, Apr 05, 2021 at 02:47:21PM +0300, Gal Pressman wrote:
> >> The new attribute indicates that the kernel copies DMA pages on fork,
> >> hence libibverbs' fork support through madvise and MADV_DONTFORK is not
> >> needed.
> >>
> >> The introduced attribute is always reported as supported since the
> >> kernel has the patch that added the copy-on-fork behavior. This allows
> >> the userspace library to identify older vs newer kernel versions.
> >> Extra care should be taken when backporting this patch as it relies on
> >> the fact that the copy-on-fork patch is merged, hence no check for
> >> support is added.
> >
> > Please be more specific, add SHA-1 of that patch and wrote the same
> > comment near "err = nla_put_u8(msg, RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK,
> > 1);" line.
> >
> > Thanks
>
> Should I put the original commit here? There were quite a lot of bug fixes and
> followups that are required.
IMHO, the last commit SHA will be enough, the one that has working
functionality from your POV.
Thanks
>
> >>
> >> Copy-on-fork attribute is read-only, trying to change it through the set
> >> sys command will result in an error.
> >>
> >> Signed-off-by: Gal Pressman <galpress@amazon.com>
> >> ---
> >> PR was sent:
> >> https://github.com/linux-rdma/rdma-core/pull/975
> >> ---
> >> drivers/infiniband/core/nldev.c | 19 ++++++++++++++-----
> >> include/uapi/rdma/rdma_netlink.h | 2 ++
> >> 2 files changed, 16 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c
> >> index b8dc002a2478..87c68301c25b 100644
> >> --- a/drivers/infiniband/core/nldev.c
> >> +++ b/drivers/infiniband/core/nldev.c
> >> @@ -146,6 +146,7 @@ static const struct nla_policy nldev_policy[RDMA_NLDEV_ATTR_MAX] = {
> >> [RDMA_NLDEV_ATTR_UVERBS_DRIVER_ID] = { .type = NLA_U32 },
> >> [RDMA_NLDEV_NET_NS_FD] = { .type = NLA_U32 },
> >> [RDMA_NLDEV_SYS_ATTR_NETNS_MODE] = { .type = NLA_U8 },
> >> + [RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK] = { .type = NLA_U8 },
> >> };
> >>
> >> static int put_driver_name_print_type(struct sk_buff *msg, const char *name,
> >> @@ -1693,12 +1694,19 @@ static int nldev_sys_get_doit(struct sk_buff *skb, struct nlmsghdr *nlh,
> >>
> >> err = nla_put_u8(msg, RDMA_NLDEV_SYS_ATTR_NETNS_MODE,
> >> (u8)ib_devices_shared_netns);
> >> - if (err) {
> >> - nlmsg_free(msg);
> >> - return err;
> >> - }
> >> + if (err)
> >> + goto err_nlmsg_free;
> >> +
> >> + err = nla_put_u8(msg, RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK, 1);
> >> + if (err)
> >> + goto err_nlmsg_free;
> >
> > Is it important to have an ability to fail here? Can we simply ignore
> > failure?
>
> Should be fine.
>
> Thanks
next prev parent reply other threads:[~2021-04-05 12:40 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-05 11:47 [PATCH for-next] RDMA/nldev: Add copy-on-fork attribute to get sys command Gal Pressman
2021-04-05 11:57 ` Leon Romanovsky
2021-04-05 11:58 ` Leon Romanovsky
2021-04-05 12:16 ` Gal Pressman
2021-04-05 12:15 ` Gal Pressman
2021-04-05 12:39 ` Leon Romanovsky [this message]
2021-04-05 13:09 ` Gal Pressman
2021-04-05 22:15 ` Jason Gunthorpe
2021-04-06 6:44 ` Leon Romanovsky
2021-04-06 14:31 ` Gal Pressman
2021-04-06 15:18 ` Jason Gunthorpe
2021-04-07 7:46 ` Gal Pressman
2021-04-06 14:50 ` Jason Gunthorpe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YGsFHWU8Hqd5LADT@unreal \
--to=leon@kernel.org \
--cc=dledford@redhat.com \
--cc=galpress@amazon.com \
--cc=jgg@nvidia.com \
--cc=jgg@ziepe.ca \
--cc=linux-rdma@vger.kernel.org \
--cc=matua@amazon.com \
--cc=sleybo@amazon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.