[pnfs] [PATCH] preallocate a backchannel request in xs_tcp_data_ready

Benny Halevy bhalevy at panasas.com
Thu Nov 29 02:20:44 EST 2007


On Nov. 29, 2007, 7:06 +0200, Trond Myklebust <trond.myklebust at fys.uio.no> wrote:
> On Wed, 2007-11-28 at 18:59 -0800, Ricardo Labiaga wrote:
>> For my own education, what happens if xs_tcp_data_ready() can not
>> allocate the back channel request and does not read the data off the
>> socket?  Will xs_tcp_data_ready() get called again because the data is
>> still there?
> 
> The remaining data would be handled by xs_tcp_read_discard(), and would
> therefore just be junked.

But that happens only via xs_tcp_data_recv which is not called
in this case.  I count on the tcp socket layer to call data_ready again
whenever new data is coming in, however I am still worried about stalling
if the receive window will fill-up after we've hit this out-of-memory
condition since the back pressure will prevent any new data from coming
in.  The solution to that could be to somehow kick start data_ready if needed
at xprt_free_bc_request time.

> 
> Trond
> 
> _______________________________________________
> pNFS mailing list
> pNFS at linux-nfs.org
> http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs
> 



More information about the pNFS mailing list