All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fengguang Wu <wfg@mail.ustc.edu.cn>
To: Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>
Subject: Re: [PATCH 03/10] readahead: combine file_ra_state.prev_index/prev_offset into prev_pos
Date: Tue, 24 Jul 2007 12:37:08 +0800	[thread overview]
Message-ID: <385252508.22609@ustc.edu.cn> (raw)
Message-ID: <20070724043708.GA6627@mail.ustc.edu.cn> (raw)
In-Reply-To: <20070724043215.GA6317@mail.ustc.edu.cn>

On Tue, Jul 24, 2007 at 12:32:15PM +0800, Fengguang Wu wrote:
> On Mon, Jul 23, 2007 at 08:55:35PM -0700, Andrew Morton wrote:
> > On Tue, 24 Jul 2007 10:00:12 +0800 Fengguang Wu <wfg@mail.ustc.edu.cn> wrote:
> > 
> > > @@ -342,11 +342,9 @@ ondemand_readahead(struct address_space 
> > >  		   bool hit_readahead_marker, pgoff_t offset,
> > >  		   unsigned long req_size)
> > >  {
> > > -	int max;	/* max readahead pages */
> > > -	int sequential;
> > > -
> > > -	max = ra->ra_pages;
> > > -	sequential = (offset - ra->prev_index <= 1UL) || (req_size > max);
> > > +	int	max = ra->ra_pages;	/* max readahead pages */
> > > +	pgoff_t prev_offset;
> > > +	int	sequential;
> > >  
> > >  	/*
> > >  	 * It's the expected callback offset, assume sequential access.
> > > @@ -360,6 +358,9 @@ ondemand_readahead(struct address_space 
> > >  		goto readit;
> > >  	}
> > >  
> > > +	prev_offset = ra->prev_pos >> PAGE_CACHE_SHIFT;
> > > +	sequential = offset - prev_offset <= 1UL || req_size > max;
> > 
> > It's a bit pointless using an opaque type for prev_offset here, and then
> > encoding the knowledge that it is implemented as "unsigned long".
> > 
> > It's a minor thing, but perhaps just "<= 1" would make more sense here.
> 
> Yeah, "<= 1" is OK.  But the expression still requires pgoff_t to be
> 'unsigned' to work correctly.
> 
> So what about "<= 1U"?

I wrote a test case and find that if pgoff_t is 'signed long',
"<= 1U" still yields the wrong result. Only "<= 1UL" does the trick :(


  parent reply	other threads:[~2007-07-24  4:48 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-24  2:00 [PATCH 00/10] readahead cleanups and interleaved readahead take 4 Fengguang Wu
2007-07-24  2:00 ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 01/10] readahead: compacting file_ra_state Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 02/10] readahead: mmap read-around simplification Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 03/10] readahead: combine file_ra_state.prev_index/prev_offset into prev_pos Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu
2007-07-24  3:52     ` Andrew Morton
2007-07-24  3:48       ` Fengguang Wu
2007-07-24  3:48         ` Fengguang Wu
2007-07-24  3:55     ` Andrew Morton
2007-07-24  4:32       ` Fengguang Wu
2007-07-24  4:32         ` Fengguang Wu
2007-07-24  4:53           ` Andrew Morton
2007-07-24  6:27             ` Fengguang Wu
2007-07-24  6:27               ` Fengguang Wu
2007-07-24  4:37         ` Fengguang Wu [this message]
2007-07-24  4:37           ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 04/10] radixtree: introduce radix_tree_scan_hole() Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 05/10] readahead: basic support of interleaved reads Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 06/10] readahead: remove the local copy of ra in do_generic_mapping_read() Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 07/10] readahead: remove several readahead macros Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 08/10] readahead: remove the limit max_sectors_kb imposed on max_readahead_kb Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 09/10] filemap: trivial code cleanups Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu
2007-07-24  2:00 ` [PATCH 10/10] filemap: convert some unsigned long to pgoff_t Fengguang Wu
2007-07-24  2:00   ` Fengguang Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=385252508.22609@ustc.edu.cn \
    --to=wfg@mail.ustc.edu.cn \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.