linux-rdma.vger.kernel.org archive mirror
 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: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	RDMA mailing list
	<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Mark Bloch <markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: [PATCH rdma-next v2 2/7] RDMA/core: Add helper function to create named QPs
Date: Tue,  2 Jan 2018 10:18:27 +0200	[thread overview]
Message-ID: <20180102081832.5264-3-leon@kernel.org> (raw)
In-Reply-To: <20180102081832.5264-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>

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

The QPs in the RDMA stack can be created by kernel
or users space, but the owner is not visible to users
after that.

The added helper keeps track of newly created QP together
with the name of the owner. In case of kernel, the caller to
create_qp is supposed to update QP's attribute with the name.
For user space callers no change is needed and the name will
be taken from the process name.

This helper sets qp->device field for all QP types including
XRC_TGT, which RDMA/core didn't do before.

Reviewed-by: Mark Bloch <markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
 drivers/infiniband/core/core_priv.h | 19 +++++++++++++++++++
 include/rdma/ib_verbs.h             |  6 ++++++
 2 files changed, 25 insertions(+)

diff --git a/drivers/infiniband/core/core_priv.h b/drivers/infiniband/core/core_priv.h
index a39c53c22988..0b62ff4bbb25 100644
--- a/drivers/infiniband/core/core_priv.h
+++ b/drivers/infiniband/core/core_priv.h
@@ -299,4 +299,23 @@ struct ib_device *ib_device_get_by_index(u32 ifindex);
 /* RDMA device netlink */
 void nldev_init(void);
 void nldev_exit(void);
+
+static inline struct ib_qp *_ib_create_qp(struct ib_device *dev,
+					  struct ib_pd *pd,
+					  struct ib_qp_init_attr *attr,
+					  struct ib_udata *udata)
+{
+	struct ib_qp *qp;
+
+	qp = dev->create_qp(pd, attr, udata);
+	if (!IS_ERR(qp)) {
+		qp->device = dev;
+		if (attr->qp_type < IB_QPT_MAX)
+			rdma_restrack_add(&qp->res,
+					  RDMA_RESTRACK_QP,
+					  attr->comm);
+	}
+
+	return qp;
+}
 #endif /* _CORE_PRIV_H */
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index d8ae52920a41..b9a0a4c4818c 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1140,6 +1140,12 @@ struct ib_qp_init_attr {
 	u8			port_num;
 	struct ib_rwq_ind_table *rwq_ind_tbl;
 	u32			source_qpn;
+
+	/*
+	 * Name of entity which created this QP, empty string means that
+	 * it will be taken automatically from task_struct.
+	 */
+	char comm[TASK_COMM_LEN];
 };
 
 struct ib_qp_open_attr {
-- 
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:[~2018-01-02  8:18 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-02  8:18 [PATCH rdma-next v2 0/7] RDMA resource tracking Leon Romanovsky
     [not found] ` <20180102081832.5264-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2018-01-02  8:18   ` [PATCH rdma-next v2 1/7] RDMA/restrack: Add general infrastructure to track RDMA resources Leon Romanovsky
2018-01-02  8:18   ` Leon Romanovsky [this message]
2018-01-02  8:18   ` [PATCH rdma-next v2 3/7] RDMA: Annotate create QP callers Leon Romanovsky
2018-01-02  8:18   ` [PATCH rdma-next v2 4/7] RDMA/core: Add resource tracking for create and destroy CQs Leon Romanovsky
2018-01-02  8:18   ` [PATCH rdma-next v2 5/7] RDMA/core: Add resource tracking for create and destroy PDs Leon Romanovsky
2018-01-02  8:18   ` [PATCH rdma-next v2 6/7] RDMA/nldev: Provide global resource utilization Leon Romanovsky
2018-01-02  8:18   ` [PATCH rdma-next v2 7/7] RDMA/nldev: Provide detailed QP information Leon Romanovsky
     [not found]     ` <20180102081832.5264-8-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2018-01-09 20:09       ` Jason Gunthorpe
     [not found]         ` <20180109200917.GF4518-uk2M96/98Pc@public.gmane.org>
2018-01-09 21:46           ` Parav Pandit
2018-01-10  7:17           ` Leon Romanovsky
     [not found]             ` <20180110071722.GF7368-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2018-01-10 22:56               ` Jason Gunthorpe
     [not found]                 ` <20180110225622.GQ4518-uk2M96/98Pc@public.gmane.org>
2018-01-10 23:28                   ` Steve Wise
2018-01-11  5:41                     ` Leon Romanovsky
     [not found]                       ` <20180111054141.GM7368-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2018-01-11 15:17                         ` Steve Wise
2018-01-11 15:47                           ` Leon Romanovsky
2018-01-11  5:37                   ` Leon Romanovsky
2018-01-08 20:53   ` [PATCH rdma-next v2 0/7] RDMA resource tracking Steve Wise
2018-01-09  7:53     ` Leon Romanovsky
     [not found]       ` <20180109075344.GD6823-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2018-01-09 15:24         ` Steve Wise

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=20180102081832.5264-3-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 \
    /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;
as well as URLs for NNTP newsgroup(s).