vfs.ffs.rawreadahead

Igor Sysoev is at rambler-co.ru
Wed Sep 3 12:49:37 UTC 2008


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 ?


-- 
Igor Sysoev
http://sysoev.ru/en/


More information about the freebsd-stable mailing list