All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@ziepe.ca>
To: Leon Romanovsky <leon@kernel.org>
Cc: Doug Ledford <dledford@redhat.com>,
	Maor Gottlieb <maorg@mellanox.com>,
	linux-rdma@vger.kernel.org
Subject: Re: [PATCH rdma-next 06/14] RDMA/core: Add restrack dummy ops
Date: Mon, 25 May 2020 11:36:50 -0300	[thread overview]
Message-ID: <20200525143650.GA21729@ziepe.ca> (raw)
In-Reply-To: <20200513095034.208385-7-leon@kernel.org>

On Wed, May 13, 2020 at 12:50:26PM +0300, Leon Romanovsky wrote:
> From: Maor Gottlieb <maorg@mellanox.com>
> 
> When fill_res_entry is not implemented by the vendor, then we just
> need to return 0. Reduce some code and make it more clear by
> set dummy ops.
> 
> Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
> Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
> ---
>  drivers/infiniband/core/nldev.c    | 46 ++++--------------------------
>  drivers/infiniband/core/restrack.c | 13 +++++++++
>  2 files changed, 19 insertions(+), 40 deletions(-)
> 
> diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c
> index 8548f09746ab..8b4115bc26b2 100644
> --- a/drivers/infiniband/core/nldev.c
> +++ b/drivers/infiniband/core/nldev.c
> @@ -446,22 +446,6 @@ static int fill_res_name_pid(struct sk_buff *msg,
>  	return err ? -EMSGSIZE : 0;
>  }
>  
> -static bool fill_res_entry(struct ib_device *dev, struct sk_buff *msg,
> -			   struct rdma_restrack_entry *res)
> -{
> -	if (!dev->ops.fill_res_entry)
> -		return false;
> -	return dev->ops.fill_res_entry(msg, res);
> -}
> -
> -static bool fill_stat_entry(struct ib_device *dev, struct sk_buff *msg,
> -			    struct rdma_restrack_entry *res)
> -{
> -	if (!dev->ops.fill_stat_entry)
> -		return false;
> -	return dev->ops.fill_stat_entry(msg, res);
> -}
> -
>  static int fill_res_qp_entry(struct sk_buff *msg, bool has_cap_net_admin,
>  			     struct rdma_restrack_entry *res, uint32_t port)
>  {
> @@ -515,10 +499,7 @@ static int fill_res_qp_entry(struct sk_buff *msg, bool has_cap_net_admin,
>  	if (fill_res_name_pid(msg, res))
>  		goto err;
>  
> -	if (fill_res_entry(dev, msg, res))
> -		goto err;
> -
> -	return 0;
> +	return dev->ops.fill_res_entry(msg, res);
>  
>  err:	return -EMSGSIZE;
>  }
> @@ -568,10 +549,7 @@ static int fill_res_cm_id_entry(struct sk_buff *msg, bool has_cap_net_admin,
>  	if (fill_res_name_pid(msg, res))
>  		goto err;
>  
> -	if (fill_res_entry(dev, msg, res))
> -		goto err;
> -
> -	return 0;
> +	return dev->ops.fill_res_entry(msg, res);
>  
>  err: return -EMSGSIZE;
>  }
> @@ -606,10 +584,7 @@ static int fill_res_cq_entry(struct sk_buff *msg, bool has_cap_net_admin,
>  	if (fill_res_name_pid(msg, res))
>  		goto err;
>  
> -	if (fill_res_entry(dev, msg, res))
> -		goto err;
> -
> -	return 0;
> +	return dev->ops.fill_res_entry(msg, res);
>  
>  err:	return -EMSGSIZE;
>  }
> @@ -641,10 +616,7 @@ static int fill_res_mr_entry(struct sk_buff *msg, bool has_cap_net_admin,
>  	if (fill_res_name_pid(msg, res))
>  		goto err;
>  
> -	if (fill_res_entry(dev, msg, res))
> -		goto err;
> -
> -	return 0;
> +	return dev->ops.fill_res_entry(msg, res);
>  
>  err:	return -EMSGSIZE;
>  }
> @@ -784,15 +756,9 @@ static int fill_stat_mr_entry(struct sk_buff *msg, bool has_cap_net_admin,
>  	struct ib_device *dev = mr->pd->device;
>  
>  	if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_MRN, res->id))
> -		goto err;
> -
> -	if (fill_stat_entry(dev, msg, res))
> -		goto err;
> -
> -	return 0;
> +		return -EMSGSIZE;
>  
> -err:
> -	return -EMSGSIZE;
> +	return dev->ops.fill_stat_entry(msg, res);
>  }
>  
>  static int fill_stat_counter_hwcounters(struct sk_buff *msg,
> diff --git a/drivers/infiniband/core/restrack.c b/drivers/infiniband/core/restrack.c
> index 62fbb0ae9cb4..093b27c0bbe6 100644
> --- a/drivers/infiniband/core/restrack.c
> +++ b/drivers/infiniband/core/restrack.c
> @@ -14,6 +14,17 @@
>  #include "cma_priv.h"
>  #include "restrack.h"
>  
> +static int fill_res_dummy(struct sk_buff *msg,
> +			  struct rdma_restrack_entry *entry)
> +{
> +	return 0;
> +}
> +
> +static const struct ib_device_ops restrack_dummy_ops = {
> +	.fill_res_entry = fill_res_dummy,
> +	.fill_stat_entry = fill_res_dummy,
> +};

If you are going to do this then you should do it for substantially
everything, as we did in rdma-core. I don't want to see easy stuff
like this half done..

And this should be a broken out series or two as it really has nothing
to do with 'raw format dumps'

Jason

  reply	other threads:[~2020-05-25 14:36 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-13  9:50 [PATCH rdma-next 00/14] RAW format dumps through RDMAtool Leon Romanovsky
2020-05-13  9:50 ` [PATCH mlx5-next 01/14] net/mlx5: Export resource dump interface Leon Romanovsky
2020-05-25 14:24   ` Jason Gunthorpe
2020-05-25 15:25     ` Maor Gottlieb
2020-05-13  9:50 ` [PATCH mlx5-next 02/14] net/mlx5: Add support in query QP, CQ and MKEY segments Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 03/14] RDMA/core: Fix double put of resource Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 04/14] RDMA/core: Allow to override device op Leon Romanovsky
2020-05-25 14:26   ` Jason Gunthorpe
2020-05-25 16:28     ` Leon Romanovsky
2020-05-25 23:21     ` Kamal Heib
2020-05-26  5:53       ` Leon Romanovsky
2020-05-26  8:07         ` Kamal Heib
2020-05-26  9:44           ` Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 05/14] RDMA/core: Don't call fill_res_entry for PD Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 06/14] RDMA/core: Add restrack dummy ops Leon Romanovsky
2020-05-25 14:36   ` Jason Gunthorpe [this message]
2020-05-25 16:23     ` Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 07/14] RDMA: Add dedicated MR resource tracker function Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 08/14] RDMA: Add a dedicated CQ " Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 09/14] RDMA: Add a dedicated QP " Leon Romanovsky
2020-05-25 14:34   ` Jason Gunthorpe
2020-05-25 16:26     ` Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 10/14] RDMA: Add dedicated cm id " Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 11/14] RDMA: Add support to dump resource tracker in RAW format Leon Romanovsky
2020-05-25 14:41   ` Jason Gunthorpe
2020-05-25 16:21     ` Leon Romanovsky
2020-05-27  6:14       ` Maor Gottlieb
2020-05-13  9:50 ` [PATCH rdma-next 12/14] RDMA/mlx5: Add support to get QP resource in raw format Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 13/14] RDMA/mlx5: Add support to get CQ resource in RAW format Leon Romanovsky
2020-05-13  9:50 ` [PATCH rdma-next 14/14] RDMA/mlx5: Add support to get MR " Leon Romanovsky
2020-05-25 14:50   ` Jason Gunthorpe
2020-05-13 10:15 ` [PATCH rdma-next 00/14] RAW format dumps through RDMAtool 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=20200525143650.GA21729@ziepe.ca \
    --to=jgg@ziepe.ca \
    --cc=dledford@redhat.com \
    --cc=leon@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=maorg@mellanox.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.