Re: [NFS] [PATCH 008 of 11] knfsd: Prepare knfsd for support of rsize/wsize of up to 1MB, over TCP.

Greg Banks
2006-10-03T01:59:41Z

On Tue, Oct 03, 2006 at 11:36:32AM +1000, Neil Brown wrote:
> On Monday September 25, bfields@fieldses.org wrote:
> >
> > We're reporting svc_max_payload(rqstp) as the server's maximum
> > read/write block size:
>
> Yes. So I'm going to change the number returned by
> svc_max_payload(rqstp) to mean the maximum read/write block size.
> i.e. when a service is created, the number passed isn't the maximum
> packet size, but is the maximum payload size.

I'm confused. Last time I looked at the code that was
exactly what the semantics were?

> The assumption is that all of the request that is not payload will fit
> into one page, and all of the reply that is not payload will also fit
> into one page (though a different page).

This is a pretty good assumption for v3.

> It means that RPC services that have lots of non-payload data combined
> with payload data won't work, but making sunrpc code completely
> general when there are only two users is just too painful.
>
> The only real problem is that NFSv4 can have arbitrarily large
> non-payload data, and arbitrarily many payloads. But I guess any
> client that trying to send two full-sized payloads in the one request
> is asking for trouble (I don't suppose the RPC spells this out at
> all?).

Bruce and I briefly discussed this when I dropped into CITI the other
week. The conclusion was that this is a non-issue in the short term
because all the clients do a single READ or WRITE per call. In the
long term I hope to rewrite some parts of that code to do away with
one of the memcpy()s in the WRITE path, and handling multiple WRITEs
for v4 would be a natural extension of that.

Greg.
--
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
I don't speak for SGI.