Re: [PATCH v1 1/3] svcrdma: Fewer calls to wake_up() in Send completion handler
From: Tom Talpey <tom@talpey.com>
Date: 2021-07-26 17:00:22
Also in:
linux-nfs
From: Tom Talpey <tom@talpey.com>
Date: 2021-07-26 17:00:22
Also in:
linux-nfs
On 7/26/2021 10:46 AM, Chuck Lever wrote:
/** * svc_rdma_wc_send - Invoked by RDMA provider for each polled Send WC * @cq: Completion Queue context@@ -275,11 +289,9 @@ static void svc_rdma_wc_send(struct ib_cq *cq, struct ib_wc *wc) trace_svcrdma_wc_send(wc, &ctxt->sc_cid); + svc_rdma_wake_send_waiters(rdma, 1); complete(&ctxt->sc_done); - atomic_inc(&rdma->sc_sq_avail); - wake_up(&rdma->sc_send_wait);
This appears to change the order of wake_up() vs complete(). Is that intentional? Is there any possibility of a false scheduler activation, later leading to a second wakeup or poll? Tom.