public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Selvin Xavier <selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH for-4.1 09/11] RDMA/ocrdma: Add CQ usage statistics counters
Date: Fri, 15 May 2015 11:57:45 -0400	[thread overview]
Message-ID: <1431705465.29187.8.camel@redhat.com> (raw)
In-Reply-To: <1431762709-20740-10-git-send-email-selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 4702 bytes --]

On Sat, 2015-05-16 at 13:21 +0530, Selvin Xavier wrote:
> From: Meghana Cheripady <meghana.cheripady-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>
> 
> Add counters for tracking the CQ usage by applications.

This isn't a bug fix, it's an enhancement.  We are already in the
4.1-rc3+ phase, enhancements aren't really appropriate (even if they
seem minor).  Please drop this one from the patchset.

> 
> Signed-off-by: Meghana Cheripady <meghana.cheripady-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>
> Signed-off-by: Selvin Xavier <selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>
> ---
>  drivers/infiniband/hw/ocrdma/ocrdma.h       |  2 ++
>  drivers/infiniband/hw/ocrdma/ocrdma_hw.c    |  8 ++++++++
>  drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 15 +++++++++++++++
>  drivers/infiniband/hw/ocrdma/ocrdma_verbs.c |  2 ++
>  4 files changed, 27 insertions(+)
> 
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma.h b/drivers/infiniband/hw/ocrdma/ocrdma.h
> index ee9e335..8782e1f 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma.h
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma.h
> @@ -290,6 +290,8 @@ struct ocrdma_dev {
>  	struct dentry *dir;
>  	atomic_t async_err_stats[OCRDMA_MAX_ASYNC_ERRORS];
>  	atomic_t cqe_err_stats[OCRDMA_MAX_CQE_ERR];
> +	atomic_t act_cq_stats;
> +	atomic_t th_cq_stats;
>  	struct ocrdma_pd_resource_mgr *pd_mgr;
>  };
>  
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> index 319675c..596d8c9 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> @@ -1720,6 +1720,7 @@ int ocrdma_mbx_create_cq(struct ocrdma_dev *dev, struct ocrdma_cq *cq,
>  	struct ocrdma_create_cq *cmd;
>  	struct ocrdma_create_cq_rsp *rsp;
>  	u32 hw_pages, cqe_size, page_size, cqe_count;
> +	int act_cq_cnt, th_cq_cnt;
>  
>  	if (entries > dev->attr.max_cqe) {
>  		pr_err("%s(%d) max_cqe=0x%x, requester_cqe=0x%x\n",
> @@ -1808,6 +1809,13 @@ int ocrdma_mbx_create_cq(struct ocrdma_dev *dev, struct ocrdma_cq *cq,
>  
>  	rsp = (struct ocrdma_create_cq_rsp *)cmd;
>  	cq->id = (u16) (rsp->rsp.cq_id & OCRDMA_CREATE_CQ_RSP_CQ_ID_MASK);
> +
> +	atomic_inc(&dev->act_cq_stats);
> +	act_cq_cnt = atomic_read(&dev->act_cq_stats);
> +	th_cq_cnt = atomic_read(&dev->th_cq_stats);
> +	if (th_cq_cnt < act_cq_cnt)
> +		atomic_set(&dev->th_cq_stats, act_cq_cnt);
> +
>  	kfree(cmd);
>  	return 0;
>  mbx_err:
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
> index 48d7ef5..47fef14 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
> @@ -146,6 +146,8 @@ static char *ocrdma_resource_stats(struct ocrdma_dev *dev)
>  				(u64)rsrc_stats->phy_mr);
>  	pcur += ocrdma_add_stat(stats, pcur, "active_mw",
>  				(u64)rsrc_stats->mw);
> +	pcur += ocrdma_add_stat(stats, pcur, "active_cq_usage_stats",
> +				(u64)atomic_read(&dev->act_cq_stats));
>  
>  	/* Print the threshold stats */
>  	rsrc_stats = &rdma_stats->th_rsrc_stats;
> @@ -200,6 +202,8 @@ static char *ocrdma_resource_stats(struct ocrdma_dev *dev)
>  				(u64)rsrc_stats->phy_mr);
>  	pcur += ocrdma_add_stat(stats, pcur, "threshold_mw",
>  				(u64)rsrc_stats->mw);
> +	pcur += ocrdma_add_stat(stats, pcur, "threshold_cq_usage_stats",
> +				(u64)atomic_read(&dev->th_cq_stats));
>  	return stats;
>  }
>  
> @@ -745,6 +749,16 @@ static const struct file_operations ocrdma_dbg_ops = {
>  	.write = ocrdma_dbgfs_ops_write,
>  };
>  
> +static void ocrdma_init_cq_stats(struct ocrdma_dev *dev)
> +{
> +	int i, cq_cnt = 0;
> +
> +	for (i = 0; i < dev->eq_cnt; i++)
> +		cq_cnt += dev->eq_tbl[i].cq_cnt;
> +	atomic_set(&dev->act_cq_stats, cq_cnt);
> +	atomic_set(&dev->th_cq_stats, cq_cnt);
> +}
> +
>  void ocrdma_add_port_stats(struct ocrdma_dev *dev)
>  {
>  	if (!ocrdma_dbgfs_dir)
> @@ -828,6 +842,7 @@ void ocrdma_add_port_stats(struct ocrdma_dev *dev)
>  		goto err;
>  
>  	mutex_init(&dev->stats_lock);
> +	ocrdma_init_cq_stats(dev);
>  
>  	return;
>  err:
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> index 9dcb660..48ec56f 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
> @@ -1119,6 +1119,8 @@ int ocrdma_destroy_cq(struct ib_cq *ibcq)
>  				dev->nic_info.db_page_size);
>  	}
>  
> +	atomic_dec(&dev->act_cq_stats);
> +
>  	kfree(cq);
>  	return 0;
>  }


-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
              GPG KeyID: 0E572FDD


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2015-05-15 15:57 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-16  7:51 [PATCH for-4.1 00/11] ocrdma bug fixes Selvin Xavier
     [not found] ` <1431762709-20740-1-git-send-email-selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>
2015-05-16  7:51   ` [PATCH for-4.1 01/11] RDMA/ocrdma: Fix EQ destroy failure during driver unload Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 02/11] RDMA/ocrdma: Report EQ full fatal error Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 03/11] RDMA/ocrdma: Fix QP state transition in destroy_qp Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 04/11] RDMA/ocrdma: Use VID 0 if PFC is enabled and vlan is not configured Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 05/11] RDMA/ocrdma: Fix the request length for RDMA_QUERY_QP mailbox command to FW Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 06/11] RDMA/ocrdma: Prevent allocation of DPP PDs if FW doesnt support it Selvin Xavier
     [not found]     ` <1431762709-20740-7-git-send-email-selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>
2015-05-15 15:43       ` Doug Ledford
     [not found]         ` <1431704582.29187.2.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-05-15 16:53           ` Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 07/11] RDMA/ocrdma: Fix dmac resolution for link local address Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 08/11] RDMA/ocrdma: Fail connection for MTU lesser than 512 Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 09/11] RDMA/ocrdma: Add CQ usage statistics counters Selvin Xavier
     [not found]     ` <1431762709-20740-10-git-send-email-selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>
2015-05-15 15:57       ` Doug Ledford [this message]
     [not found]         ` <1431705465.29187.8.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-05-15 16:55           ` Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 10/11] RDMA/ocrdma: Prevent returning failures in the resource destroy path Selvin Xavier
     [not found]     ` <1431762709-20740-11-git-send-email-selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>
2015-05-15 15:56       ` Doug Ledford
     [not found]         ` <1431705372.29187.6.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-05-15 18:16           ` Selvin Xavier
2015-05-18 11:46         ` Selvin Xavier
     [not found]           ` <d4f35e4f79dbe5ee4e75f5cfafafcb41-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-19 18:22             ` Jason Gunthorpe
     [not found]               ` <20150519182232.GE18675-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-05-28  3:58                 ` Selvin Xavier
2015-05-16  7:51   ` [PATCH for-4.1 11/11] RDMA/ocrdma: Update ocrdma version number Selvin Xavier

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=1431705465.29187.8.camel@redhat.com \
    --to=dledford-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox