lkml.org 
[lkml]   [2011]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 10/27] nfs: limit the commit size to reduce fluctuations
    Limit the commit size to 1/8 dirty control scope, so that the arrival of
    one commit will not knock the overall dirty pages off the scope.

    CC: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
    ---
    fs/nfs/write.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    After patch, there are still drop offs from the control scope,

    http://www.kernel.org/pub/linux/kernel/people/wfg/writeback/dirty-throttling-v6/NFS/nfs-1dd-1M-8p-2945M-20%25-2.6.38-rc6-dt6+-2011-02-22-21-09/balance_dirty_pages-pages.png

    due to bursty arrival of commits:

    http://www.kernel.org/pub/linux/kernel/people/wfg/writeback/dirty-throttling-v6/NFS/nfs-1dd-1M-8p-2945M-20%25-2.6.38-rc6-dt6+-2011-02-22-21-09/nfs-commit.png

    --- linux-next.orig/fs/nfs/write.c 2011-03-02 20:39:01.000000000 +0800
    +++ linux-next/fs/nfs/write.c 2011-03-02 20:39:01.000000000 +0800
    @@ -1492,9 +1492,10 @@ static int nfs_commit_unstable_pages(str

    if (wbc->sync_mode == WB_SYNC_NONE) {
    /* Don't commit yet if this is a non-blocking flush and there
    - * are a lot of outstanding writes for this mapping.
    + * are a lot of outstanding writes for this mapping, until
    + * collected enough pages to commit.
    */
    - if (nfsi->ncommit <= (nfsi->npages >> 1))
    + if (nfsi->ncommit <= nfsi->npages / 32 /* DIRTY_MARGIN */)
    goto out_mark_dirty;

    /* don't wait for the COMMIT response */



    \
     
     \ /
      Last update: 2011-03-03 09:29    [W:0.025 / U:1.172 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site