[lkml]   [1997]   [Jul]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Page cache patch - less aggressive
    Dr. Werner Fink wrote:
    > During testing the new buffer code I found that find_candidate()
    > called very often in refill_freelist() runs try_to_free_buffer()
    > ... this seems to free the previous buffer pages allocated by
    > grow_buffers() in refill_freelist() and leads to heavy swap I/O

    find_candidate() only calls try_to_free_buffer() if the buffer size
    doesn't match what it's looking for. Therefore it won't release the
    buffer pages allocated by the previous grow_buffers().

    However, if two tasks were simultaneously using refill_freelist to get
    different sizes of buffers, they could end up releasing each other's
    newly added buffers.

    > Does any body know a simple fix for find_candidate() in the
    > new buffer code to avoid this behaviour?

    Glad you asked :-) I've found some bugs in refill_freelist() that could
    explain the oopses people have been reporting. I'm working on a patch
    and will post it later (hopefully today.)


     \ /
      Last update: 2005-03-22 13:39    [W:0.020 / U:43.036 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site