[pnfs] [PATCH] preallocate a backchannel request in xs_tcp_data_ready
Trond Myklebust
trond.myklebust at fys.uio.no
Thu Nov 29 10:20:22 EST 2007
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
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.
Trond
More information about the pNFS
mailing list