lkml.org 
[lkml]   [2007]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 6/8] balance dirty pages from loop device
    From: Miklos Szeredi <mszeredi@suse.cz>

    The function do_lo_send_aops() should call
    balance_dirty_pages_ratelimited() after each page similarly to
    generic_file_buffered_write().

    Without this, writing the loop device directly (not through a
    filesystem) is very slow, and also slows the whole system down,
    because nr_dirty is constantly over the limit.

    Beware: this patch without the fix to balance_dirty_pages() makes a
    loopback mounted filesystem prone to deadlock.

    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    ---

    Index: linux/drivers/block/loop.c
    ===================================================================
    --- linux.orig/drivers/block/loop.c 2007-02-27 14:40:55.000000000 +0100
    +++ linux/drivers/block/loop.c 2007-02-27 14:41:08.000000000 +0100
    @@ -275,6 +275,8 @@ static int do_lo_send_aops(struct loop_d
    pos += size;
    unlock_page(page);
    page_cache_release(page);
    + balance_dirty_pages_ratelimited(mapping);
    + cond_resched();
    }
    ret = 0;
    out:
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-03-06 19:13    [W:0.019 / U:154.544 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site