Subject: Re: Raising NFS parameters for higher bandwith or "long fat pipe"
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-kern
Date: 12/13/2003 18:09:41
On Sat, Dec 13, 2003 at 02:58:58PM -0800, Jonathan Stone wrote:
>
> * There must be a better way to compute the read-ahead block number!
From my point of view, we would do a lot better to implement read-ahead
(clustering of page-ins) for *all* filesystems at a higher level than
we actually do. As it stands:
* All I/O requests actually turn into single page faults of
pages in the "I/O window", because the information on the
actual request size is not preserved.
* uvm_fault does some very minimal "read-ahead" IIRC:
like turning single-page faults into two-page faults.
* Any other readahead happens only once you get down to the
guts of the underlying filesystem *after* going through the
pager. So with FFS, ferinstance, you get 64K reads no matter
what size you actually fed to the read() system call. Ugh.
I can think of a bunch of ways to attack this problem and the exact
problem you describe at the same time, but I think they both highlight
why the current way is Bad.
Thor