lkml.org 
[lkml]   [2006]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 04/33] readahead: page flag PG_readahead
    On Wed, May 24, 2006 at 02:27:36PM +0200, Peter Zijlstra wrote:
    > On Wed, 2006-05-24 at 19:12 +0800, Wu Fengguang wrote:
    > > plain text document attachment
    > > (readahead-page-flag-PG_readahead.patch)
    > > An new page flag PG_readahead is introduced as a look-ahead mark, which
    > > reminds the caller to give the adaptive read-ahead logic a chance to do
    > > read-ahead ahead of time for I/O pipelining.
    > >
    > > It roughly corresponds to `ahead_start' of the stock read-ahead logic.
    > >
    > > Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn>
    > > ---
    > >
    > > include/linux/page-flags.h | 5 +++++
    > > mm/page_alloc.c | 2 +-
    > > 2 files changed, 6 insertions(+), 1 deletion(-)
    > >
    > > --- linux-2.6.17-rc4-mm3.orig/include/linux/page-flags.h
    > > +++ linux-2.6.17-rc4-mm3/include/linux/page-flags.h
    > > @@ -89,6 +89,7 @@
    > > #define PG_reclaim 17 /* To be reclaimed asap */
    > > #define PG_nosave_free 18 /* Free, should not be written */
    > > #define PG_buddy 19 /* Page is free, on buddy lists */
    > > +#define PG_readahead 20 /* Reminder to do readahead */
    > >
    >
    > Page flags are gouped by four, 20 would start a new set.
    > Also in my tree (git from a few days ago), 20 is taken by PG_unchached.

    Thanks, grouped and renumbered it as 21.

    > What code is this patch-set against?

    It's against the latest -mm tree: linux-2.6.17-rc4-mm3.

    Wu
    ---

    Subject: readahead: page flag PG_readahead

    An new page flag PG_readahead is introduced as a look-ahead mark, which
    reminds the caller to give the adaptive read-ahead logic a chance to do
    read-ahead ahead of time for I/O pipelining.

    It roughly corresponds to `ahead_start' of the stock read-ahead logic.

    Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn>
    ---
    include/linux/page-flags.h | 5 +++++
    mm/page_alloc.c | 2 +-
    2 files changed, 6 insertions(+), 1 deletion(-)

    --- linux-2.6.17-rc4-mm3.orig/include/linux/page-flags.h
    +++ linux-2.6.17-rc4-mm3/include/linux/page-flags.h
    @@ -90,6 +90,8 @@
    #define PG_nosave_free 18 /* Free, should not be written */
    #define PG_buddy 19 /* Page is free, on buddy lists */

    +#define PG_readahead 21 /* Reminder to do readahead */
    +

    #if (BITS_PER_LONG > 32)
    /*
    @@ -372,6 +374,10 @@ extern void __mod_page_state_offset(unsi
    #define SetPageUncached(page) set_bit(PG_uncached, &(page)->flags)
    #define ClearPageUncached(page) clear_bit(PG_uncached, &(page)->flags)

    +#define PageReadahead(page) test_bit(PG_readahead, &(page)->flags)
    +#define __SetPageReadahead(page) __set_bit(PG_readahead, &(page)->flags)
    +#define TestClearPageReadahead(page) test_and_clear_bit(PG_readahead, &(page)->flags)
    +
    struct page; /* forward declaration */

    int test_clear_page_dirty(struct page *page);
    --- linux-2.6.17-rc4-mm3.orig/mm/page_alloc.c
    +++ linux-2.6.17-rc4-mm3/mm/page_alloc.c
    @@ -564,7 +564,7 @@ static int prep_new_page(struct page *pa
    if (PageReserved(page))
    return 1;

    - page->flags &= ~(1 << PG_uptodate | 1 << PG_error |
    + page->flags &= ~(1 << PG_uptodate | 1 << PG_error | 1 << PG_readahead |
    1 << PG_referenced | 1 << PG_arch_1 |
    1 << PG_checked | 1 << PG_mappedtodisk);
    set_page_private(page, 0);
    -
    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-24 14:40    [W:2.577 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site