lkml.org 
[lkml]   [2009]   [Jul]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: Bug in kernel 2.6.31, Slow wb_kupdate writeout
    From
    On Wed, Jul 29, 2009 at 5:19 PM, Martin Bligh<mbligh@google.com> wrote:
    > BTW, can you explain this code at the bottom of generic_sync_sb_inodes
    > for me?
    >
    >                if (wbc->nr_to_write <= 0) {
    >                        wbc->more_io = 1;
    >                        break;
    >                }
    >
    > I don't understand why we are setting more_io here? AFAICS, more_io
    > means there's more stuff to write ... I would think we'd set this if
    > nr_to_write was > 0 ?
    >
    > Or just have the section below brought up above this
    > break check and do:
    >
    > if (!list_empty(&sb->s_more_io) || !list_empty(&sb->s_io))
    >        wbc->more_io = 1;
    >
    > Am I just misunderstanding the intent of more_io ?

    I am thinking along the lines of:

    @@ -638,13 +609,11 @@ sync_sb_inodes(struct super_block *sb, s
    iput(inode);
    cond_resched();
    spin_lock(&inode_lock);
    - if (wbc->nr_to_write <= 0) {
    - wbc->more_io = 1;
    + if (wbc->nr_to_write <= 0)
    break;
    - }
    - if (!list_empty(&sb->s_more_io))
    - wbc->more_io = 1;
    }
    + if (!list_empty(&sb->s_more_io) || !list_empty(&sb->s_io)
    + wbc->more_io = 1;
    return; /* Leave any unwritten inodes on s_io */
    }
    --
    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: 2009-07-30 03:31    [W:0.028 / U:59.312 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site