kostikbel at gmail.com
Wed Sep 3 13:01:57 UTC 2008
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.
> 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20080903/b89a3bfd/attachment.pgp
More information about the freebsd-stable