All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Yishai Hadas <yishaih@nvidia.com>
Cc: Saeed Mahameed <saeed@kernel.org>,
	Leon Romanovsky <leon@kernel.org>,
	Doug Ledford <dledford@redhat.com>,
	Jakub Kicinski <kuba@kernel.org>, <linux-rdma@vger.kernel.org>,
	<netdev@vger.kernel.org>
Subject: Re: [PATCH mlx5-next v1] RDMA/mlx5: Cleanup the synchronize_srcu() from the ODP flow
Date: Mon, 1 Feb 2021 15:49:52 -0400	[thread overview]
Message-ID: <20210201194952.GS4247@nvidia.com> (raw)
In-Reply-To: <549b337b-b51e-c984-a4d8-72f9f738be9c@nvidia.com>

On Sun, Jan 31, 2021 at 03:24:50PM +0200, Yishai Hadas wrote:
> On 1/29/2021 2:23 PM, Saeed Mahameed wrote:
> > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/mr.c
> > > b/drivers/net/ethernet/mellanox/mlx5/core/mr.c
> > > index 9eb51f06d3ae..50af84e76fb6 100644
> > > +++ b/drivers/net/ethernet/mellanox/mlx5/core/mr.c
> > > @@ -56,6 +56,7 @@ int mlx5_core_create_mkey(struct mlx5_core_dev
> > > *dev,
> > >          mkey->size = MLX5_GET64(mkc, mkc, len);
> > >          mkey->key |= mlx5_idx_to_mkey(mkey_index);
> > >          mkey->pd = MLX5_GET(mkc, mkc, pd);
> > > +       init_waitqueue_head(&mkey->wait);
> > > 
> > >          mlx5_core_dbg(dev, "out 0x%x, mkey 0x%x\n", mkey_index, mkey-
> > > > key);
> > >          return 0;
> > > diff --git a/include/linux/mlx5/driver.h
> > > b/include/linux/mlx5/driver.h
> > > index 4901b4fadabb..f9e7036ae5a5 100644
> > > +++ b/include/linux/mlx5/driver.h
> > > @@ -373,6 +373,8 @@ struct mlx5_core_mkey {
> > >          u32                     key;
> > >          u32                     pd;
> > >          u32                     type;
> > > +       struct wait_queue_head wait;
> > > +       refcount_t usecount;
> > mlx5_core_mkey is used everywhere in mlx5_core and we don't care about
> > odp complexity, i would like to keep the core simple and primitive as
> > it is today.
> > please keep the layer separation and find a way to manage refcount and
> > wait queue in mlx5_ib driver..
> > 
> The alternative could really be to come with some wrapped mlx5_ib structure
> that will hold 'mlx5_core_mkey' and will add those two fields.

Yes

struct mlx5_ib_mkey
{
   struct mlx5_core_mkey mkey;
   struct wait_queue_head wait;
   refcount_t usecount;
}

struct mlx5_ib_mr/mw/devx
{
    struct mlx5_ib_mkey mkey;
}

The odp_mkeys XA will store pointers to mlx5_ib_mkey (not core_mkey)
and container_of() to go back to the MW, devx or MR.

> Having it per object (e.g. mlx5_ib_mr, mlx5_ib_mw, mlx5_ib_devx_mr)
> increasing locking scope and branches on data path to find the refcount
> field per its 'type'.  (see mlx5_core_mkey->type).

It is free, just use container_of, no change to locking/etc

Jason

  parent reply	other threads:[~2021-02-01 19:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-28  6:48 [PATCH mlx5-next v1] RDMA/mlx5: Cleanup the synchronize_srcu() from the ODP flow Leon Romanovsky
     [not found] ` <c79124a204f2207f5f1fae69cc34fb08d91d3535.camel@kernel.org>
     [not found]   ` <549b337b-b51e-c984-a4d8-72f9f738be9c@nvidia.com>
2021-02-01 19:49     ` Jason Gunthorpe [this message]
2021-02-01 20:03       ` Saeed Mahameed
2021-02-02  6:43         ` Leon Romanovsky

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=20210201194952.GS4247@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=dledford@redhat.com \
    --cc=kuba@kernel.org \
    --cc=leon@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=saeed@kernel.org \
    --cc=yishaih@nvidia.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.