lkml.org 
[lkml]   [2007]   [Jul]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/7] readahead: compacting file_ra_state
    Use 'unsigned int' instead of 'unsigned long' for readahead sizes.

    This helps reduce memory consumption on 64bit CPU when
    a lot of files are opened.

    CC: Andi Kleen <andi@firstfloor.org>
    Signed-off-by: Fengguang Wu <wfg@mail.ustc.edu.cn>
    ---
    include/linux/fs.h | 8 ++++----
    mm/filemap.c | 2 +-
    mm/readahead.c | 2 +-
    3 files changed, 6 insertions(+), 6 deletions(-)

    --- linux-2.6.22-rc6-mm1.orig/include/linux/fs.h
    +++ linux-2.6.22-rc6-mm1/include/linux/fs.h
    @@ -771,12 +771,12 @@ struct fown_struct {
    * Track a single file's readahead state
    */
    struct file_ra_state {
    - pgoff_t start; /* where readahead started */
    - unsigned long size; /* # of readahead pages */
    - unsigned long async_size; /* do asynchronous readahead when
    + pgoff_t start; /* where readahead started */
    + unsigned int size; /* # of readahead pages */
    + unsigned int async_size; /* do asynchronous readahead when
    there are only # of pages ahead */

    - unsigned long ra_pages; /* Maximum readahead window */
    + unsigned int ra_pages; /* Maximum readahead window */
    unsigned long mmap_hit; /* Cache hit stat for mmap accesses */
    unsigned long mmap_miss; /* Cache miss stat for mmap accesses */
    unsigned long prev_index; /* Cache last read() position */
    --- linux-2.6.22-rc6-mm1.orig/mm/filemap.c
    +++ linux-2.6.22-rc6-mm1/mm/filemap.c
    @@ -840,7 +840,7 @@ static void shrink_readahead_size_eio(st
    if (count > 5)
    return;
    count++;
    - printk(KERN_WARNING "Reducing readahead size to %luK\n",
    + printk(KERN_WARNING "Reducing readahead size to %dK\n",
    ra->ra_pages << (PAGE_CACHE_SHIFT - 10));
    }

    --- linux-2.6.22-rc6-mm1.orig/mm/readahead.c
    +++ linux-2.6.22-rc6-mm1/mm/readahead.c
    @@ -342,7 +342,7 @@ ondemand_readahead(struct address_space
    bool hit_readahead_marker, pgoff_t offset,
    unsigned long req_size)
    {
    - unsigned long max; /* max readahead pages */
    + int max; /* max readahead pages */
    int sequential;

    max = ra->ra_pages;
    --
    -
    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: 2007-07-21 06:49    [W:0.020 / U:88.212 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site