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

Benny Halevy bhalevy at panasas.com
Thu Nov 29 10:53:19 EST 2007


On Nov. 29, 2007, 17:20 +0200, Trond Myklebust <trond.myklebust at fys.uio.no> wrote:
> On Thu, 2007-11-29 at 16:48 +0200, Benny Halevy wrote:
>> On Nov. 29, 2007, 16:29 +0200, Trond Myklebust <trond.myklebust at fys.uio.no> wrote:
>>> That would be a totally unacceptable slowdown on the forward channel,
>>> and is quite unnecessary. You have a session and you have given the
>>> server a set number of slots for the back channel. You therefore _know_
>>> how much space you need to preallocate in order to be able to service
>>> all requests that will be arriving on the back channel.
>> You're right and it'd be nice if, in addition to the per-slot resources,
>> we'll have per xprt memory to process any callback request up to
>> the sessions slot table layer so if all slots are busy we can
>> return the most appropriate error.
> 
> Assuming that the server is written according to spec, then the problem
> of it sending stuff outside the slot table limits should really never

hmm, and if the server retries within the slot table it's supposed to disconnect
first...

> occur. I don't think that it makes sense to optimise for spec-violating
> situations by committing extra memory resources to deal with them.
> 
> So for the case of a callback (as opposed to a forward channel reply) it
> may instead make sense to do as Chuck suggested, and simply shut down
> the connection in order to force the misbehaving server to resend. That
> will also have a performance impact on the forward channel, but I can't
> see that we have an obligation to optimise for broken server
> performance.

yup.  that makes sense.
thanks for having this discussion anyways
it helped me understand this issue better.

Benny

> 
> Trond
> 



More information about the pNFS mailing list