From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public•gmane.org>
To: Selvin Xavier <selvin.xavier-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA@public•gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public•gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public•gmane.org,
michael.chan-dY08KVG/lbpWk0Htik3J/w@public•gmane.org,
Eddie Wai <eddie.wai-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>,
Devesh Sharma
<devesh.sharma-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>,
Somnath Kotur
<somnath.kotur-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>,
Sriharsha Basavapatna
<sriharsha.basavapatna-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>
Subject: Re: [PATCH for bnxt_re V4 10/21] RDMA/bnxt_re: Support for CQ verbs
Date: Wed, 18 Jan 2017 10:19:15 +0200 [thread overview]
Message-ID: <20170118081915.GU32481@mtr-leonro.local> (raw)
In-Reply-To: <1482320530-5344-11-git-send-email-selvin.xavier-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 3910 bytes --]
On Wed, Dec 21, 2016 at 03:41:59AM -0800, Selvin Xavier wrote:
> Implements support for create_cq, destroy_cq and req_notify_cq
> verbs.
>
> v3: Code cleanup based on errors reported by sparse on endianness check.
> Removes unwanted macros.
>
> Signed-off-by: Eddie Wai <eddie.wai-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>
> Signed-off-by: Devesh Sharma <devesh.sharma-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>
> Signed-off-by: Somnath Kotur <somnath.kotur-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>
> Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>
> Signed-off-by: Selvin Xavier <selvin.xavier-dY08KVG/lbpWk0Htik3J/w@public•gmane.org>
> ---
> drivers/infiniband/hw/bnxt_re/ib_verbs.c | 146 +++++++++++++++++++++++++
> drivers/infiniband/hw/bnxt_re/ib_verbs.h | 19 ++++
> drivers/infiniband/hw/bnxt_re/main.c | 4 +
> drivers/infiniband/hw/bnxt_re/qplib_fp.c | 181 +++++++++++++++++++++++++++++++
> drivers/infiniband/hw/bnxt_re/qplib_fp.h | 50 +++++++++
> include/uapi/rdma/bnxt_re-abi.h | 12 ++
> 6 files changed, 412 insertions(+)
>
> diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
> index b09c2cb..e12e0c2 100644
> --- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c
> +++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
> @@ -492,6 +492,152 @@ struct ib_pd *bnxt_re_alloc_pd(struct ib_device *ibdev,
> return ERR_PTR(rc);
> }
>
> +/* Completion Queues */
> +int bnxt_re_destroy_cq(struct ib_cq *ib_cq)
> +{
> + struct bnxt_re_cq *cq = container_of(ib_cq, struct bnxt_re_cq, ib_cq);
> + struct bnxt_re_dev *rdev = cq->rdev;
> + int rc;
> +
> + rc = bnxt_qplib_destroy_cq(&rdev->qplib_res, &cq->qplib_cq);
> + if (rc) {
> + dev_err(rdev_to_dev(rdev), "Failed to destroy HW CQ");
> + return rc;
> + }
> + if (cq->umem && !IS_ERR(cq->umem))
> + ib_umem_release(cq->umem);
> +
> + if (cq) {
> + kfree(cq->cql);
> + kfree(cq);
> + }
> + atomic_dec(&rdev->cq_count);
> + rdev->nq.budget--;
> + return 0;
> +}
> +
> +struct ib_cq *bnxt_re_create_cq(struct ib_device *ibdev,
> + const struct ib_cq_init_attr *attr,
> + struct ib_ucontext *context,
> + struct ib_udata *udata)
> +{
> + struct bnxt_re_dev *rdev = to_bnxt_re_dev(ibdev, ibdev);
> + struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr;
> + struct bnxt_re_cq *cq = NULL;
> + int rc, entries;
> + int cqe = attr->cqe;
> +
> + /* Validate CQ fields */
> + if (cqe < 1 || cqe > dev_attr->max_cq_wqes) {
> + dev_err(rdev_to_dev(rdev), "Failed to create CQ -max exceeded");
> + return ERR_PTR(-EINVAL);
> + }
> + cq = kzalloc(sizeof(*cq), GFP_KERNEL);
> + if (!cq)
> + return ERR_PTR(-ENOMEM);
> +
> + cq->rdev = rdev;
> + cq->qplib_cq.cq_handle = (u64)(unsigned long)(&cq->qplib_cq);
> +
> + entries = roundup_pow_of_two(cqe + 1);
> + if (entries > dev_attr->max_cq_wqes + 1)
> + entries = dev_attr->max_cq_wqes + 1;
> +
> + if (context) {
> + struct bnxt_re_cq_req req;
> + struct bnxt_re_ucontext *uctx = container_of
> + (context,
> + struct bnxt_re_ucontext,
> + ib_uctx);
> + if (ib_copy_from_udata(&req, udata, sizeof(req))) {
> + rc = -EFAULT;
> + goto fail;
> + }
> +
> + cq->umem = ib_umem_get(context, req.cq_va,
> + entries * sizeof(struct cq_base),
> + IB_ACCESS_LOCAL_WRITE, 1);
> + if (IS_ERR(cq->umem)) {
> + rc = PTR_ERR(cq->umem);
> + goto fail;
> + }
> + cq->qplib_cq.sghead = cq->umem->sg_head.sgl;
> + cq->qplib_cq.nmap = cq->umem->nmap;
> + cq->qplib_cq.dpi = uctx->dpi;
> + } else {
> + cq->max_cql = entries > MAX_CQL_PER_POLL ? MAX_CQL_PER_POLL :
> + entries;
It is better to use already existing macros - min()
cq->max_cql = min(entries, MAX_CQL_PER_POLL);
I afraid that you can't avoid the respinning, you have more than month
till merge window.
Can you please remove useless wrappers and try to reuse kernel macros?
Thanks
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-01-18 8:19 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-21 11:41 [PATCH for bnxt_re V4 00/21] Broadcom RoCE Driver (bnxt_re) Selvin Xavier
2016-12-21 11:41 ` [PATCH for bnxt_re V4 01/21] RDMA/bnxt_re: Add bnxt_re RoCE driver files Selvin Xavier
2016-12-21 11:41 ` [PATCH for bnxt_re V4 02/21] RDMA/bnxt_re: Introducing autogenerated Host Software Interface(hsi) file Selvin Xavier
2016-12-21 11:41 ` [PATCH for bnxt_re V4 03/21] RDMA/bnxt_re: register with the NIC driver Selvin Xavier
2017-01-18 10:11 ` Leon Romanovsky
2017-02-06 20:26 ` Doug Ledford
2017-02-10 11:41 ` Selvin Xavier
2016-12-21 11:41 ` [PATCH for bnxt_re V4 06/21] RDMA/bnxt_re: Support for PD, ucontext and mmap verbs Selvin Xavier
2016-12-21 11:41 ` [PATCH for bnxt_re V4 07/21] RDMA/bnxt_re: Support for query and modify device verbs Selvin Xavier
2016-12-21 11:42 ` [PATCH for bnxt_re V4 12/21] RDMA/bnxt_re: Support memory registration verbs Selvin Xavier
2016-12-21 11:42 ` [PATCH for bnxt_re V4 13/21] RDMA/bnxt_re: Support QP verbs Selvin Xavier
2017-01-18 9:16 ` Leon Romanovsky
2016-12-21 11:42 ` [PATCH for bnxt_re V4 19/21] RDMA/bnxt_re: Set uverbs command mask Selvin Xavier
2016-12-21 11:42 ` [PATCH for bnxt_re V4 20/21] RDMA/bnxt_re: Add QP event handling Selvin Xavier
2017-01-24 12:20 ` Leon Romanovsky
[not found] ` <20170124122008.GH6005-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-01-25 9:04 ` Selvin Xavier
[not found] ` <1482320530-5344-1-git-send-email-selvin.xavier-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2016-12-21 11:41 ` [PATCH for bnxt_re V4 04/21] RDMA/bnxt_re: Enabling RoCE control path Selvin Xavier
2016-12-21 11:41 ` [PATCH for bnxt_re V4 05/21] RDMA/bnxt_re: Adding Notification Queue support Selvin Xavier
2016-12-21 11:41 ` [PATCH for bnxt_re V4 08/21] RDMA/bnxt_re: Adding support for port related verbs Selvin Xavier
2016-12-21 11:41 ` [PATCH for bnxt_re V4 09/21] RDMA/bnxt_re: Support for GID " Selvin Xavier
2017-01-18 9:50 ` Leon Romanovsky
2016-12-21 11:41 ` [PATCH for bnxt_re V4 10/21] RDMA/bnxt_re: Support for CQ verbs Selvin Xavier
[not found] ` <1482320530-5344-11-git-send-email-selvin.xavier-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2017-01-18 8:19 ` Leon Romanovsky [this message]
2016-12-21 11:42 ` [PATCH for bnxt_re V4 11/21] RDMA/bnxt_re: Support for AH verbs Selvin Xavier
2016-12-21 11:42 ` [PATCH for bnxt_re V4 14/21] RDMA/bnxt_re: Support post_send verb Selvin Xavier
2016-12-21 11:42 ` [PATCH for bnxt_re V4 15/21] RDMA/bnxt_re: Support post_recv Selvin Xavier
2017-01-24 11:59 ` Leon Romanovsky
2016-12-21 11:42 ` [PATCH for bnxt_re V4 16/21] RDMA/bnxt_re: Support poll_cq verb Selvin Xavier
2016-12-21 11:42 ` [PATCH for bnxt_re V4 17/21] RDMA/bnxt_re: Handling dispatching of events to IB stack Selvin Xavier
[not found] ` <1482320530-5344-18-git-send-email-selvin.xavier-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2017-01-24 12:18 ` Leon Romanovsky
2017-01-25 9:03 ` Selvin Xavier
2016-12-21 11:42 ` [PATCH for bnxt_re V4 18/21] RDMA/bnxt_re: Support for DCB Selvin Xavier
2016-12-21 11:42 ` [PATCH for bnxt_re V4 21/21] RDMA/bnxt_re: Add bnxt_re driver build support Selvin Xavier
2017-02-07 15:27 ` [PATCH for bnxt_re V4 00/21] Broadcom RoCE Driver (bnxt_re) Doug Ledford
-- strict thread matches above, loose matches on Subject: below --
2017-01-18 9:12 [PATCH for bnxt_re V4 10/21] RDMA/bnxt_re: Support for CQ verbs Selvin Xavier
2017-01-19 6:57 ` Doug Ledford
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=20170118081915.GU32481@mtr-leonro.local \
--to=leon-dgejt+ai2ygdnm+yrofe0a@public$(echo .)gmane.org \
--cc=devesh.sharma-dY08KVG/lbpWk0Htik3J/w@public$(echo .)gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public$(echo .)gmane.org \
--cc=eddie.wai-dY08KVG/lbpWk0Htik3J/w@public$(echo .)gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
--cc=michael.chan-dY08KVG/lbpWk0Htik3J/w@public$(echo .)gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
--cc=selvin.xavier-dY08KVG/lbpWk0Htik3J/w@public$(echo .)gmane.org \
--cc=somnath.kotur-dY08KVG/lbpWk0Htik3J/w@public$(echo .)gmane.org \
--cc=sriharsha.basavapatna-dY08KVG/lbpWk0Htik3J/w@public$(echo .)gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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