Subject: Re: [nfsv4] rpc_tasks in parallel

From: "J. Bruce Fields" <[email-masked]>
Date: Tue, 2 Jul 2013 11:27:57 -0400

On Thu, Jun 27, 2013 at 05:12:34PM +0000, Murty, Ravi wrote:
> Hello,
> 
> I've been playing with parallelizing transmission and reception of nfs request/reply's to speed up our nfs client on our little core. While I can parallelize skb processing on the receive side before it hands off to rpciod/nfsiod, I've run into a problem on the transmit side.
> Details:
> I'm using the 2.6.38 kernel.

Linux implementation questions should go to [email-masked],
not to the IETF working group list.

--b.

> The application sets up rpc requests to read pages from the server and these rpc_tasks and made runnable but end up serializing on the XPRT_LOCKED bit in the xprt structure (since there is one for each mounted client).
> I've been thinking about ways to parallelize the completely independent rpc_tasks so they can be transmitted at the same time on multiple threads:
> 
> 1)      Create multiple transport structures for a single mount point to allow multiple rpc_tasks to be transmitted at the same time.
> 
> 2)      Split the processing of rpc_tasks into a "top" part and a "bottom" such that the top part can unlock (release) the transport and let the next rpc_task reserve the transport for send the next request while the bottom part is sending the skb to the driver.
> 
> Thanks
> Ravi

> _______________________________________________
> nfsv4 mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/nfsv4