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