[v3] xprtrdma: Make sure Send CQ is allocated on an existing compvec
diff mbox series

Message ID 9d418664-1f67-c705-19a0-80fc9dc5a12b@suse.com
State New
Headers show
Series
  • [v3] xprtrdma: Make sure Send CQ is allocated on an existing compvec
Related show

Commit Message

Nicolas Morey-Chaisemartin Feb. 5, 2019, 5:21 p.m. UTC
Make sure the device has at least 2 completion vectors
before allocating to compvec#1

Fixes: a4699f5647f3 (xprtrdma: Put Send CQ in IB_POLL_WORKQUEUE mode)
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
---
Changes since v2:
 - Split line for checkpatch to be happy

 net/sunrpc/xprtrdma/verbs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Chuck Lever Feb. 5, 2019, 5:23 p.m. UTC | #1
> On Feb 5, 2019, at 12:21 PM, Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com> wrote:
> 
> Make sure the device has at least 2 completion vectors
> before allocating to compvec#1
> 
> Fixes: a4699f5647f3 (xprtrdma: Put Send CQ in IB_POLL_WORKQUEUE mode)
> Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>

Reviewed-by: Chuck Lever <chuck.lever@oracle.com>

Anna, can you see that this fix gets into v5.0-rc ? Thanks!


> ---
> Changes since v2:
> - Split line for checkpatch to be happy
> 
> net/sunrpc/xprtrdma/verbs.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
> index b725911c0f3f..5fe727a7db82 100644
> --- a/net/sunrpc/xprtrdma/verbs.c
> +++ b/net/sunrpc/xprtrdma/verbs.c
> @@ -546,7 +546,8 @@ rpcrdma_ep_create(struct rpcrdma_ep *ep, struct rpcrdma_ia *ia,
> 
> 	sendcq = ib_alloc_cq(ia->ri_device, NULL,
> 			     ep->rep_attr.cap.max_send_wr + 1,
> -			     1, IB_POLL_WORKQUEUE);
> +			     ia->ri_device->num_comp_vectors > 1 ? 1 : 0,
> +			     IB_POLL_WORKQUEUE);
> 	if (IS_ERR(sendcq)) {
> 		rc = PTR_ERR(sendcq);
> 		dprintk("RPC:       %s: failed to create send CQ: %i\n",
> -- 
> 2.18.0

--
Chuck Lever
Nicolas Morey-Chaisemartin Feb. 12, 2019, 2:35 p.m. UTC | #2
On 2/5/19 6:23 PM, Chuck Lever wrote:
>
>> On Feb 5, 2019, at 12:21 PM, Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com> wrote:
>>
>> Make sure the device has at least 2 completion vectors
>> before allocating to compvec#1
>>
>> Fixes: a4699f5647f3 (xprtrdma: Put Send CQ in IB_POLL_WORKQUEUE mode)
>> Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
> Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
>
> Anna, can you see that this fix gets into v5.0-rc ? Thanks!
>
>
Ping.

Haven't seen this upstream nor in the nfs repo (maybe I'm not checking the right one :) )
Any chance this gets picked up for 5.0 ?

Nicolas
Schumaker, Anna Feb. 12, 2019, 8:32 p.m. UTC | #3
On Tue, 2019-02-12 at 15:35 +0100, Nicolas Morey-Chaisemartin wrote:
> NetApp Security WARNING: This is an external email. Do not click links or open
> attachments unless you recognize the sender and know the content is safe.
> 
> 
> 
> 
> On 2/5/19 6:23 PM, Chuck Lever wrote:
> > > On Feb 5, 2019, at 12:21 PM, Nicolas Morey-Chaisemartin <
> > > nmoreychaisemartin@suse.com> wrote:
> > > 
> > > Make sure the device has at least 2 completion vectors
> > > before allocating to compvec#1
> > > 
> > > Fixes: a4699f5647f3 (xprtrdma: Put Send CQ in IB_POLL_WORKQUEUE mode)
> > > Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
> > Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
> > 
> > Anna, can you see that this fix gets into v5.0-rc ? Thanks!
> > 
> > 
> Ping.
> 
> Haven't seen this upstream nor in the nfs repo (maybe I'm not checking the
> right one :) )
> Any chance this gets picked up for 5.0 ?

Thanks for the reminder!  I'll plan on pushing it out for 5.0 this week.

Thanks,
Anna
> 
> Nicolas

Patch
diff mbox series

diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
index b725911c0f3f..5fe727a7db82 100644
--- a/net/sunrpc/xprtrdma/verbs.c
+++ b/net/sunrpc/xprtrdma/verbs.c
@@ -546,7 +546,8 @@  rpcrdma_ep_create(struct rpcrdma_ep *ep, struct rpcrdma_ia *ia,
 
 	sendcq = ib_alloc_cq(ia->ri_device, NULL,
 			     ep->rep_attr.cap.max_send_wr + 1,
-			     1, IB_POLL_WORKQUEUE);
+			     ia->ri_device->num_comp_vectors > 1 ? 1 : 0,
+			     IB_POLL_WORKQUEUE);
 	if (IS_ERR(sendcq)) {
 		rc = PTR_ERR(sendcq);
 		dprintk("RPC:       %s: failed to create send CQ: %i\n",