lkml.org 
[lkml]   [2000]   [Dec]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC] changes to buffer.c (was Test12 ll_rw_block error)


    On Thursday, December 21, 2000 22:38:04 -0200 Marcelo Tosatti <marcelo@conectiva.com.br> wrote:

    >
    > On Thu, 21 Dec 2000, Andreas Dilger wrote:
    >
    >> Marcelo Tosatti writes:
    >> > It seems your code has a problem with bh flush time.
    >> >
    >> > In flush_dirty_buffers(), a buffer may (if being called from kupdate) only
    >> > be written in case its old enough. (bh->b_flushtime)
    >> >
    >> > If the flush happens for an anonymous buffer, you'll end up writing all
    >> > buffers which are sitting on the same page (with block_write_anon_page),
    >> > but these other buffers are not necessarily old enough to be flushed.
    >>
    >> This isn't really a "problem" however. The page is the _maximum_ age of
    >> the buffer before it needs to be written. If we can efficiently write it
    >> out with another buffer
    >
    >
    >> (essentially for free if they are on the same spot on disk)
    >
    > Are you sure this is true for buffer pages in most cases?
    >
    >

    It's a good point. block_write_anon_page could be changed to just write the oldest buffer and redirty the page (if the buffers are far apart). If memory is tight, and we *really* need the page back, it will be flushed by try_to_free_buffers.

    It seems a bit nasty to me though...writepage should write the page.

    -chris



    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 12:52    [W:0.021 / U:65.124 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site