All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Christoph Lameter <cl@linux.com>
Cc: <linux-rdma@vger.kernel.org>, Leon Romanovsky <leon@kernel.org>
Subject: Re: [PATCH] Fix: Remove racy Subnet Manager sendonly join checks
Date: Tue, 9 Feb 2021 15:15:17 -0400	[thread overview]
Message-ID: <20210209191517.GQ4247@nvidia.com> (raw)
In-Reply-To: <alpine.DEB.2.22.394.2101281845160.13303@www.lameter.com>

On Thu, Jan 28, 2021 at 06:46:47PM +0000, Christoph Lameter wrote:
> From 64e734c38f509d591073fc1e1db3caa42be3b874 Mon Sep 17 00:00:00 2001
> From: Christoph Lameter <cl@linux.com>
> Date: Thu, 28 Jan 2021 14:55:36 +0000
> Subject: [PATCH] Fix: Remove racy Subnet Manager sendonly join checks
> 
> When a system receives a REREG event from the SM, then the SM information in
> the kernel is marked as invalid and a request is sent to the SM to update
> the information. The SM information is invalid in that time period.
> 
> However, receiving a REREG also occurs simultaneously in user space
> applications that are now trying to rejoin the multicast groups. Some of those
> may be sendonly multicast groups which are then failing.
> 
> If the SM information is invalid then ib_sa_sendonly_fullmem_support()
> returns false. That is wrong because it just means that we do not know
> yet if the potentially new SM supports sendonly joins.
> 
> Sendonly join was introduced in 2015 and all the Subnet managers have
> supported it ever since. So there is no point in checking if a subnet
> manager supports it.
> 
> Should an old opensm get a request for a sendonly join then the request
> will fail. The code that is removed here accomodated that situation
> and fell back to a full join.
> 
> Falling back to a full join is problematic in itself. The reason to
> use the sendonly join was to reduce the traffic on the Infiniband
> fabric otherwise one could have just stayed with the regular join.
> So this patch may cause users of very old opensms to discover that
> lots of traffic needlessly crosses their IB fabrics.
> 
> Signed-off-by: Christoph Lameter <cl@linux.com>
> ---
>  drivers/infiniband/core/cma.c                 | 11 ---------
>  drivers/infiniband/core/sa_query.c            | 24 -------------------
>  drivers/infiniband/ulp/ipoib/ipoib.h          |  1 -
>  drivers/infiniband/ulp/ipoib/ipoib_main.c     |  2 --
>  .../infiniband/ulp/ipoib/ipoib_multicast.c    | 13 +---------
>  5 files changed, 1 insertion(+), 50 deletions(-)

This one got spam filtered and didn't make it to the list:

Received-SPF: SoftFail (hqemgatev14.nvidia.com: domain of
        cl@linux.com is inclined to not designate 3.19.106.255 as
        permitted sender) identity=mailfrom; client-ip=3.19.106.255;
        receiver=hqemgatev14.nvidia.com;
        envelope-from="cl@linux.com"; x-sender="cl@linux.com";
        x-conformance=spf_only; x-record-type="v=spf1"

Also the extra From/Date/Subject ended up in the commit message

I fixed it all up, applied to for-next

It looks like OPA will also suffer this race (opa_pr_query_possible),
maybe it is a little less likely since it will be driven by PR queries
not broadcast joins.

But the same logic is likely true there, I'd be surprised if OPA
fabrics are not running a capable OPA SM at this point.

Jason

       reply	other threads:[~2021-02-09 19:47 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <alpine.DEB.2.22.394.2101281845160.13303@www.lameter.com>
2021-02-09 19:15 ` Jason Gunthorpe [this message]
2021-02-10  9:31   ` [PATCH] Fix: Remove racy Subnet Manager sendonly join checks Christoph Lameter
2021-02-10 13:03     ` Jason Gunthorpe
2021-02-10 18:51       ` Christoph Lameter
2021-02-12 22:16     ` Dennis Dalessandro
2021-02-12 22:13   ` Dennis Dalessandro
2021-01-25 11:28 Christoph Lameter
2021-01-25 11:44 ` Leon Romanovsky
2021-01-28 14:03 ` Jason Gunthorpe
2021-01-28 14:21   ` Leon Romanovsky
2021-01-28 14:34   ` Christoph Lameter
2021-01-28 14:44     ` Jason Gunthorpe
2021-01-28 14:58       ` Christoph Lameter
2021-01-28 18:11         ` 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=20210209191517.GQ4247@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=cl@linux.com \
    --cc=leon@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    /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.