27 Jun, 2006

1 commit

  • acquired (aquired)
    contiguous (contigious)
    successful (succesful, succesfull)
    surprise (suprise)
    whether (weather)
    some other misspellings

    Signed-off-by: Andreas Mohr
    Signed-off-by: Adrian Bunk

    Andreas Mohr
     

26 Jun, 2006

2 commits

  • Put short function description for read_cache_pages() on one line as needed
    by kernel-doc.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • AOP_TRUNCATED_PAGE victims in read_pages() belong in the LRU

    Nick Piggin rightly pointed out that the introduction of AOP_TRUNCATED_PAGE
    to read_pages() was wrong to leave A_T_P victim pages in the page cache but
    not put them in the LRU. Failing to do so hid them from the VM.

    A_T_P just means that the aop method unlocked the page rather than
    performing IO. It would be very rare that the page was truncated between
    the unlock and testing A_T_P. So we leave the pages in the LRU for likely
    reuse soon rather than backing them back out of the page cache. We do this
    by matching the behaviour before the A_T_P introduction which added pages
    to the LRU regardless of what ->readpage() did.

    This doesn't include the unrelated cleanup in Nick's initial fix which
    changed read_pages() to return void to match its only caller's behaviour of
    ignoring errors.

    Signed-off-by: Nick Piggin
    Signed-off-by: Zach Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zach Brown
     

23 Mar, 2006

1 commit

  • Linus points out that ext3_readdir's readahead only cuts in when
    ext3_readdir() is operating at the very start of the directory. So for large
    directories we end up performing no readahead at all and we suck.

    So take it all out and use the core VM's page_cache_readahead(). This means
    that ext3 directory reads will use all of readahead's dynamic sizing goop.

    Note that we're using the directory's filp->f_ra to hold the readahead state,
    but readahead is actually being performed against the underlying blockdev's
    address_space. Fortunately the readahead code is all set up to handle this.

    Tested with printk. It works. I was struggling to find a real workload which
    actually cared.

    (The patch also exports page_cache_readahead() to GPL modules)

    Cc: "Stephen C. Tweedie"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

22 Mar, 2006

2 commits

  • The current current get_init_ra_size is not optimal across different IO
    sizes and max_readahead values. Here is a quick summary of sizes computed
    under current design and under the attached patch. All of these assume 1st
    IO at offset 0, or 1st detected sequential IO.

    32k max, 4k request

    old new
    -----------------
    8k 8k
    16k 16k
    32k 32k

    128k max, 4k request
    old new
    -----------------
    32k 16k
    64k 32k
    128k 64k
    128k 128k

    128k max, 32k request
    old new
    -----------------
    32k 64k
    Cc: Steven Pratt
    Cc: Ram Pai
    Cc: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Steven Pratt
     
  • If get_next_ra_size() does not grow fast enough, ->prev_page can overrun
    the ahead window. This means the caller will read the pages from
    ->ahead_start + ->ahead_size to ->prev_page synchronously.

    Signed-off-by: Oleg Nesterov
    Cc: Steven Pratt
    Cc: Ram Pai
    Cc: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     

04 Jan, 2006

1 commit

  • readpage(), prepare_write(), and commit_write() callers are updated to
    understand the special return code AOP_TRUNCATED_PAGE in the style of
    writepage() and WRITEPAGE_ACTIVATE. AOP_TRUNCATED_PAGE tells the caller that
    the callee has unlocked the page and that the operation should be tried again
    with a new page. OCFS2 uses this to detect and work around a lock inversion in
    its aop methods. There should be no change in behaviour for methods that don't
    return AOP_TRUNCATED_PAGE.

    WRITEPAGE_ACTIVATE is also prepended with AOP_ for consistency and they are
    made enums so that kerneldoc can be used to document their semantics.

    Signed-off-by: Zach Brown

    Zach Brown
     

07 Nov, 2005

1 commit

  • Add a few comments surrounding the generic readahead API.

    Also convert some ulongs into pgoff_t: the identifier for PAGE_CACHE_SIZE
    offsets into pagecache.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

08 Sep, 2005

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds