SUNRPC: Adjust rpciod workqueue parameters
authorTrond Myklebust <trond.myklebust@primarydata.com>
Fri, 23 Jan 2015 18:19:17 +0000 (13:19 -0500)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Sat, 24 Jan 2015 23:46:49 +0000 (18:46 -0500)
Increase the concurrency level for rpciod threads to allow for allocations
etc that happen in the RPCSEC_GSS layer. Also note that the NFSv4 byte range
locks may now need to allocate memory from inside rpciod.

Add the WQ_HIGHPRI flag to improve latency guarantees while we're at it.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
net/sunrpc/sched.c

index d20f2329eea3f4e05f5ff679368ed82a281ff991..4f65ec28d2b49c39553d753272e53cf7c4aeb879 100644 (file)
@@ -1069,7 +1069,8 @@ static int rpciod_start(void)
         * Create the rpciod thread and wait for it to start.
         */
        dprintk("RPC:       creating workqueue rpciod\n");
-       wq = alloc_workqueue("rpciod", WQ_MEM_RECLAIM, 1);
+       /* Note: highpri because network receive is latency sensitive */
+       wq = alloc_workqueue("rpciod", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
        rpciod_workqueue = wq;
        return rpciod_workqueue != NULL;
 }