[lkml]   [2011]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH] writeback: avoid unnecessary determine_dirtyable_memory call
    I think determine_dirtyable_memory is rather costly function since
    it need many atomic reads for gathering zone/global page state.
    But when we use vm_dirty_bytes && dirty_background_bytes, we don't
    need that costly calculation.

    This patch eliminates such unnecessary overhead.

    NOTE : newly added if condition might add overhead in normal path.
    But it should be _really_ small because anyway we need the
    access both vm_dirty_bytes and dirty_background_bytes so it is
    likely to hit the cache.

    Cc: Wu Fengguang <>
    Cc: Peter Zijlstra <>
    Signed-off-by: Minchan Kim <>
    mm/page-writeback.c | 5 ++++-
    1 files changed, 4 insertions(+), 1 deletions(-)

    diff --git a/mm/page-writeback.c b/mm/page-writeback.c
    index fc93802..c340536 100644
    --- a/mm/page-writeback.c
    +++ b/mm/page-writeback.c
    @@ -390,9 +390,12 @@ void global_dirty_limits(unsigned long *pbackground, unsigned long *pdirty)
    unsigned long background;
    unsigned long dirty;
    - unsigned long available_memory = determine_dirtyable_memory();
    + unsigned long available_memory;
    struct task_struct *tsk;

    + if (!vm_dirty_bytes || !dirty_background_bytes)
    + available_memory = determine_dirtyable_memory();
    if (vm_dirty_bytes)
    dirty = DIV_ROUND_UP(vm_dirty_bytes, PAGE_SIZE);

     \ /
      Last update: 2011-01-03 17:33    [W:0.025 / U:8.488 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site