lkml.org 
[lkml]   [2006]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 20/33] readahead: initial method - expected read size
On Fri, May 26, 2006 at 10:29:34AM -0700, Andrew Morton wrote:
> Wu Fengguang <wfg@mail.ustc.edu.cn> wrote:
> >
> > backing_dev_info.ra_expect_bytes is dynamicly updated to be the expected
> > read pages on start-of-file. It allows the initial readahead to be more
> > aggressive and hence efficient.
> >
> >
> > +void fastcall readahead_close(struct file *file)
>
> eww, fastcall.

Hehe, it's a tiny function, and calls no further sub-routines
except debugging ones. Still not necessary?

> > +{
> > + struct inode *inode = file->f_dentry->d_inode;
> > + struct address_space *mapping = inode->i_mapping;
> > + struct backing_dev_info *bdi = mapping->backing_dev_info;
> > + unsigned long pos = file->f_pos;
>
> f_pos is loff_t.

Just meant to be a little more compact ;)

+ unsigned long pos = file->f_pos;
+ unsigned long pgrahit = file->f_ra.cache_hits;
+ unsigned long pgaccess = 1 + pos / PAGE_CACHE_SIZE;
+ unsigned long pgcached = mapping->nrpages;
+
+ if (!pos) /* pread */
+ return;
+
+ if (pgcached > bdi->ra_pages0) /* excessive reads */
+ return;

Here the f_pos will almost definitely has small values.

+
+ if (pgaccess >= pgcached) {


Fixed by adding a comment to clarify it:

+ unsigned long pos = file->f_pos; /* supposed to be small */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-05-27 08:40    [W:0.554 / U:0.160 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site