From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: "Saleem, Shiraz" <shiraz.saleem@intel.com>,
"Zhu, Yanjun" <yanjun.zhu@intel.com>,
"Ismail, Mustafa" <mustafa.ismail@intel.com>,
"jgg@ziepe.ca" <jgg@ziepe.ca>,
"leon@kernel.org" <leon@kernel.org>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>
Subject: Re: [PATCH for-next 3/4] RDMA/irdma: Split QP handler into irdma_reg_user_mr_type_qp
Date: Wed, 11 Jan 2023 14:11:26 +0800 [thread overview]
Message-ID: <d1273ff2-1f7d-239e-770f-2249546cd1b6@linux.dev> (raw)
In-Reply-To: <MWHPR11MB00297D796AE392D8FFCFD0A3E9FF9@MWHPR11MB0029.namprd11.prod.outlook.com>
在 2023/1/10 12:10, Saleem, Shiraz 写道:
>> Subject: [PATCH for-next 3/4] RDMA/irdma: Split QP handler into
>> irdma_reg_user_mr_type_qp
>>
>> From: Zhu Yanjun <yanjun.zhu@linux.dev>
>>
>> Split the source codes related with QP handling into a new function.
>>
>> Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
>> ---
>> drivers/infiniband/hw/irdma/verbs.c | 48 ++++++++++++++++++++---------
>> 1 file changed, 34 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
>> index 287d4313f14d..e90eba73c396 100644
>> --- a/drivers/infiniband/hw/irdma/verbs.c
>> +++ b/drivers/infiniband/hw/irdma/verbs.c
>> @@ -2831,6 +2831,39 @@ static void irdma_free_iwmr(struct irdma_mr *iwmr)
>> kfree(iwmr);
>> }
>>
>> +static int irdma_reg_user_mr_type_qp(struct irdma_mem_reg_req req,
>> + struct irdma_device *iwdev,
>> + struct ib_udata *udata,
>> + struct irdma_mr *iwmr)
> You could omit iwdev and compute it from iwmr.
Got it.
>
>> +{
>> + u32 total;
>> + int err = 0;
> No need to initialize.
Got it.
>
>> + u8 shadow_pgcnt = 1;
>> + bool use_pbles = false;
>
> No need to initialize use_pbles.
Thanks. I will send out the latest commits very soon.
Zhu Yanjun
>
>
>> + unsigned long flags;
>> + struct irdma_ucontext *ucontext;
>> + struct irdma_pbl *iwpbl = &iwmr->iwpbl;
>> +
>> + total = req.sq_pages + req.rq_pages + shadow_pgcnt;
>> + if (total > iwmr->page_cnt)
>> + return -EINVAL;
>> +
>> + total = req.sq_pages + req.rq_pages;
>> + use_pbles = (total > 2);
>> + err = irdma_handle_q_mem(iwdev, &req, iwpbl, use_pbles);
>> + if (err)
>> + return err;
>> +
>> + ucontext = rdma_udata_to_drv_context(udata, struct irdma_ucontext,
>> + ibucontext);
>> + spin_lock_irqsave(&ucontext->qp_reg_mem_list_lock, flags);
>> + list_add_tail(&iwpbl->list, &ucontext->qp_reg_mem_list);
>> + iwpbl->on_list = true;
>> + spin_unlock_irqrestore(&ucontext->qp_reg_mem_list_lock, flags);
>> +
>> + return err;
>> +}
>> +
>> /**
>> * irdma_reg_user_mr - Register a user memory region
>> * @pd: ptr of pd
>> @@ -2886,23 +2919,10 @@ static struct ib_mr *irdma_reg_user_mr(struct ib_pd
>> *pd, u64 start, u64 len,
>>
>> switch (req.reg_type) {
>> case IRDMA_MEMREG_TYPE_QP:
>> - total = req.sq_pages + req.rq_pages + shadow_pgcnt;
>> - if (total > iwmr->page_cnt) {
>> - err = -EINVAL;
>> - goto error;
>> - }
>> - total = req.sq_pages + req.rq_pages;
>> - use_pbles = (total > 2);
>> - err = irdma_handle_q_mem(iwdev, &req, iwpbl, use_pbles);
>> + err = irdma_reg_user_mr_type_qp(req, iwdev, udata, iwmr);
>> if (err)
>> goto error;
>>
>> - ucontext = rdma_udata_to_drv_context(udata, struct
>> irdma_ucontext,
>> - ibucontext);
>> - spin_lock_irqsave(&ucontext->qp_reg_mem_list_lock, flags);
>> - list_add_tail(&iwpbl->list, &ucontext->qp_reg_mem_list);
>> - iwpbl->on_list = true;
>> - spin_unlock_irqrestore(&ucontext->qp_reg_mem_list_lock, flags);
>> break;
>> case IRDMA_MEMREG_TYPE_CQ:
>> if (iwdev->rf->sc_dev.hw_attrs.uk_attrs.feature_flags &
>> IRDMA_FEATURE_CQ_RESIZE)
>> --
>> 2.31.1
next prev parent reply other threads:[~2023-01-11 6:11 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-09 19:53 [PATCH for-next 0/4] RDMA/irdma: Refactor irdma_reg_user_mr function Zhu Yanjun
2023-01-09 19:53 ` [PATCH for-next 1/4] RDMA/irdma: Split MEM handler into irdma_reg_user_mr_type_mem Zhu Yanjun
2023-01-10 4:10 ` Saleem, Shiraz
2023-01-11 5:41 ` Zhu Yanjun
2023-01-09 19:54 ` [PATCH for-next 2/4] RDMA/irdma: Split mr alloc and free into new functions Zhu Yanjun
2023-01-10 4:11 ` Saleem, Shiraz
2023-01-11 5:59 ` Zhu Yanjun
2023-01-09 19:54 ` [PATCH for-next 3/4] RDMA/irdma: Split QP handler into irdma_reg_user_mr_type_qp Zhu Yanjun
2023-01-10 4:10 ` Saleem, Shiraz
2023-01-11 6:11 ` Zhu Yanjun [this message]
2023-01-09 19:54 ` [PATCH for-next 4/4] RDMA/irdma: Split CQ handler into irdma_reg_user_mr_type_cq Zhu Yanjun
2023-01-10 4:12 ` Saleem, Shiraz
2023-01-11 6:23 ` Zhu Yanjun
2023-01-10 4:14 ` [PATCH for-next 0/4] RDMA/irdma: Refactor irdma_reg_user_mr function Saleem, Shiraz
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=d1273ff2-1f7d-239e-770f-2249546cd1b6@linux.dev \
--to=yanjun.zhu@linux.dev \
--cc=jgg@ziepe.ca \
--cc=leon@kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=mustafa.ismail@intel.com \
--cc=shiraz.saleem@intel.com \
--cc=yanjun.zhu@intel.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.