On Thu, Oct 19, 2017 at 04:33:47PM -0400, bfields wrote: > On Thu, Oct 19, 2017 at 03:38:17PM -0400, Chuck Lever wrote: > > > > > On Oct 10, 2017, at 1:31 PM, Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> wrote: > > > > > > Since it can take a while before a specific thread gets scheduled, it > > > is better to just implement a first come first served queue mechanism. > > > That way, if a thread is already scheduled and is idle, it can pick up > > > the work to do from the queue. > > > > > > Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> > > > > Tested-by: Chuck Lever <chuck.lever@xxxxxxxxxx> > > > > Light performance testing, and a git software build / regression > > suite run on NFSv4.1. All on NFS/RDMA. > > Thanks! And sorry for the slow response to this patch, the basic idea > sounds fine I just haven't found the time to understand the code change > yet! Sorry, I'm slow. Took me a little staring to realize that this: > > > @@ -380,7 +380,6 @@ void svc_xprt_do_enqueue(struct svc_xprt *xprt) ... > > > - /* this one will do */ > > > - rqstp->rq_xprt = xprt; is the main change. We'll let any thread running in svc_recv() pick up an xprt from the queue rather than assigning an xprt to a specific thread here in enqueue and then waiting for that specific thread to get to it. Makes sense, thanks, applied! --b. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html