All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Jason Gunthorpe <jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Mark Bloch <markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Steve Wise
	<swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>,
	Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: [RFC PATCH rdma-next 11/14] RDMA/core: Add resource tracking for create and destroy CQs
Date: Thu, 21 Dec 2017 20:17:45 +0200	[thread overview]
Message-ID: <20171221181748.17126-12-leon@kernel.org> (raw)
In-Reply-To: <20171221181748.17126-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>

From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

Track all creation and destroy of CQ objects.

Reviewed-by: Mark Bloch <markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
 drivers/infiniband/core/cq.c               | 3 +++
 drivers/infiniband/core/uverbs_cmd.c       | 1 +
 drivers/infiniband/core/uverbs_std_types.c | 2 ++
 drivers/infiniband/core/verbs.c            | 2 ++
 4 files changed, 8 insertions(+)

diff --git a/drivers/infiniband/core/cq.c b/drivers/infiniband/core/cq.c
index f2ae75fa3128..6344e007dbce 100644
--- a/drivers/infiniband/core/cq.c
+++ b/drivers/infiniband/core/cq.c
@@ -154,6 +154,8 @@ struct ib_cq *ib_alloc_cq(struct ib_device *dev, void *private,
 	if (!cq->wc)
 		goto out_destroy_cq;

+	rdma_restrack_add(&cq->res, RDMA_RESTRACK_CQ, NULL);
+
 	switch (cq->poll_ctx) {
 	case IB_POLL_DIRECT:
 		cq->comp_handler = ib_cq_completion_direct;
@@ -208,6 +210,7 @@ void ib_free_cq(struct ib_cq *cq)
 		WARN_ON_ONCE(1);
 	}

+	rdma_restrack_del(&cq->res, RDMA_RESTRACK_CQ);
 	kfree(cq->wc);
 	ret = cq->device->destroy_cq(cq);
 	WARN_ON_ONCE(ret);
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 24609be0c5cf..f462bde6e3b4 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -1033,6 +1033,7 @@ static struct ib_ucq_object *create_cq(struct ib_uverbs_file *file,
 		goto err_cb;

 	uobj_alloc_commit(&obj->uobject);
+	rdma_restrack_add(&cq->res, RDMA_RESTRACK_CQ, NULL);

 	return obj;

diff --git a/drivers/infiniband/core/uverbs_std_types.c b/drivers/infiniband/core/uverbs_std_types.c
index c3ee5d9b336d..2d0d27865b09 100644
--- a/drivers/infiniband/core/uverbs_std_types.c
+++ b/drivers/infiniband/core/uverbs_std_types.c
@@ -35,6 +35,7 @@
 #include <rdma/ib_verbs.h>
 #include <linux/bug.h>
 #include <linux/file.h>
+#include <rdma/restrack.h>
 #include "rdma_core.h"
 #include "uverbs.h"

@@ -319,6 +320,7 @@ static int uverbs_create_cq_handler(struct ib_device *ib_dev,
 	obj->uobject.object = cq;
 	obj->uobject.user_handle = user_handle;
 	atomic_set(&cq->usecnt, 0);
+	rdma_restrack_add(&cq->res, RDMA_RESTRACK_CQ, NULL);

 	ret = uverbs_copy_to(attrs, CREATE_CQ_RESP_CQE, &cq->cqe);
 	if (ret)
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index 6d95263a40d6..1e023e2d1dde 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -1545,6 +1545,7 @@ struct ib_cq *ib_create_cq(struct ib_device *device,
 		cq->event_handler = event_handler;
 		cq->cq_context    = cq_context;
 		atomic_set(&cq->usecnt, 0);
+		rdma_restrack_add(&cq->res, RDMA_RESTRACK_CQ, NULL);
 	}

 	return cq;
@@ -1563,6 +1564,7 @@ int ib_destroy_cq(struct ib_cq *cq)
 	if (atomic_read(&cq->usecnt))
 		return -EBUSY;

+	rdma_restrack_del(&cq->res, RDMA_RESTRACK_CQ);
 	return cq->device->destroy_cq(cq);
 }
 EXPORT_SYMBOL(ib_destroy_cq);
--
2.15.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-12-21 18:17 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-21 18:17 [RFC PATCH rdma-next 00/14] RDMA resource tracking Leon Romanovsky
     [not found] ` <20171221181748.17126-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-12-21 18:17   ` [RFC PATCH rdma-next 01/14] RDMA/netlink: Simplify code of autoload modules Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 02/14] RDMA/core: Enforce requirement to hold lists_rwsem semaphore Leon Romanovsky
     [not found]     ` <20171221181748.17126-3-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-12-21 19:12       ` Jason Gunthorpe
     [not found]         ` <20171221191200.GE20015-uk2M96/98Pc@public.gmane.org>
2017-12-21 19:51           ` Leon Romanovsky
     [not found]             ` <20171221195134.GM2942-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-12-21 19:57               ` Leon Romanovsky
2017-12-21 20:23               ` Jason Gunthorpe
2017-12-21 18:17   ` [RFC PATCH rdma-next 03/14] RDMA/core: Replace open-coded variant of put_device Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 04/14] RDMA/nldev: Refactor nldev handle to be common function Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 05/14] RDMA/core: Provide locked variant of device name to index function Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 06/14] RDMA/netlink: Protect device query from device removal Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 07/14] RDMA/nldev: Protect port query from accidental " Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 08/14] RDMA/restrack: Add general infrastructure to track RDMA resources Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 09/14] RDMA/core: Add helper function to create named QPs Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 10/14] RDMA: Annotate create QP callers Leon Romanovsky
2017-12-21 18:17   ` Leon Romanovsky [this message]
2017-12-21 18:17   ` [RFC PATCH rdma-next 12/14] RDMA/core: Add resource tracking for create and destroy PDs Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 13/14] RDMA/nldev: Provide global resource utilization Leon Romanovsky
2017-12-21 18:17   ` [RFC PATCH rdma-next 14/14] RDMA/nldev: Provide detailed QP information Leon Romanovsky
2017-12-21 18:21   ` [RFC PATCH rdma-next 00/14] RDMA resource tracking Leon Romanovsky
2017-12-21 19:14   ` Jason Gunthorpe
     [not found]     ` <20171221191424.GF20015-uk2M96/98Pc@public.gmane.org>
2017-12-21 19:52       ` 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=20171221181748.17126-12-leon@kernel.org \
    --to=leon-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@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 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.