Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: [tls-maxphys] src/sys/dev



On Tue, Oct 09, 2012 at 09:20:46AM -0700, Chuck Silvers wrote:
> > [...]
> > I wondered that myself.  I think multiple of pagesize is probably okay,
> > but -- IIRC -- I couldn't convince myself we'd always do the right thing
> > with the residual.  Try it?
> 
> the underlying mechanism used by the UVM read ahead code (pgo_get / 
> VOP_GETPAGES)
> can handle any number of pages, not just power-of-2-sized groups of pages.
> there's no reason for the read ahead code to limit itself that way.

The reason was the computation of the tranfer length:
        bytelen = ((off + chunksize) & -(off_t)chunksize) - off;

but as off and chunksize are both a multiple of PAGE_SIZE, using chunksize
as bytelen is just fine. I just removed this and use chunksize as the size
of the read-ahead, and it seems to work fine. 

Now, iostat -x shows that sequential read of a large file (either with cat
or dd bs=1m) is done in 32k transfers at the disk level. So I guess something
is not working properly here ...

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index