On Wed, Sep 03, 2008 at 04:47:33PM +0400, Igor Sysoev wrote: > On Wed, Sep 03, 2008 at 03:39:55PM +0300, Kostik Belousov wrote: > > > On Wed, Sep 03, 2008 at 01:53:52PM +0400, Igor Sysoev wrote: > > > Hi, > > > > > > could anyone tell what does vfs.ffs.rawreadahead enable ? > > > As I understand it's used in DIRECTIO code that allows read data > > > directly to an userland buffer bypassing the buffer cache. > > > What I can not understand where the read ahead data can be placed in ? > > > > The operation of the ffs_rawread is more accurately described as > > bypassing the page cache. It creates the physical buffer that maps > > the user pages. > > > > The readahead is performed only when the supplied user memory region > > is bigger then blocksize. In this case, two reads are performed > > simultaneously, with both buffers mapping consequent blocks from > > user-supplied buffers. The read operation looks like footsteps. > > Nice! > > As I understand the size limit of one read operation is MAXPHYS, which is > equal to 128K due to LBA28 ATA limit. On SCSI, SATA, and LBA48 ATA this limit > can be increased. Is it safe ?
As I understand, mnt_iosize_max value, that is topped at MAXPHYS, is used to limit the size of the buffer cluster used for clustered reads/writes. This readw clustering sometimes is called readahead too, but it seems to not be directly related to readahead done by ffs_rawread.c.
pgpwyy3C5YbXZ.pgp
Description: PGP signature
