Subject: Re: Raising NFS parameters for higher bandwith or "long fat pipe"
To: Thor Lancelot Simon <tls@rek.tjls.com>
From: Eric Haszlakiewicz <erh@jodi.nimenees.com>
List: tech-kern
Date: 12/15/2003 09:21:13
On Sat, Dec 13, 2003 at 09:22:18PM -0500, Thor Lancelot Simon wrote:
> The thing is, by the time the request hits genfs_getpages, the actual
> size passed to the read() call has been discarded -- genfs_getpages()
> never gets a chance to find out even if the application wanted, say,
> 1MB worth of pages and we knew this because it told us so with read()
> or MADV_WILLNEED.
> 
> I don't really see any reason why that should be so, but at least
> last time I looked, it was.  It would probably not be too hard to
> fix.
> 
> I _think_ we could whack things so read() caused the whole range to
> get willneed'ed.  Eric was doing something with this, maybe he
> remembers more.
	yes, I do have some changes to pass more information about a read
down farther.  Specifically, I mark the range mapped to read from a file
as needing all of it if done from a read() call and use that to adjust
the amount of readahead to do.  mmap'd access still uses the normal
readahead algo.  My code also extends the interface with the actual device
so it can say how much it can read at once, which would eventually allow
reads of more than 64k to happen.  I haven't been able to test that very
well b/c IDE drives (or at least mine) can't actually do more than 64k
transfers.
  I haven't worked on the code in a while, but I'll see if I can
go dig it up.

eric