[lkml]   [2008]   [Oct]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] Improve buffered streaming write ordering
    On Wed, 2008-10-01 at 21:52 -0700, Andrew Morton wrote:
    > On Wed, 01 Oct 2008 14:40:51 -0400 Chris Mason <> wrote:
    > > The patch below changes write_cache_pages to only use writeback_index
    > > when current_is_pdflush(). The basic idea is that pdflush is the only
    > > one who has concurrency control against the bdi, so it is the only one
    > > who can safely use and update writeback_index.
    > Another approach would be to only update mapping->writeback_index if
    > nobody else altered it meanwhile.

    Ok, I can give that a short.

    > That being said, I don't really see why we get lots of seekiness when
    > two threads start their writing the file from the same offset.

    For metadata, it makes sense. Pages get dirtied in strange order, and
    if writeback_index is jumping around, we'll get the seeky metadata

    Data makes less sense, especially the very high extent count from ext4.
    An extra printk shows that ext4 is calling redirty_page_for_writepage
    quite a bit in ext4_da_writepage. This should be enough to make us jump
    around in the file.

    For a 4.5GB streaming buffered write, this printk inside
    ext4_da_writepage shows up 37,2429 times in /var/log/messages.

    if (page_has_buffers(page)) {
    page_bufs = page_buffers(page);
    if (walk_page_buffers(NULL, page_bufs, 0, len, NULL,
    ext4_bh_unmapped_or_delay)) {
    * We don't want to do block allocation
    * So redirty the page and return
    * We may reach here when we do a journal commit
    * via journal_submit_inode_data_buffers.
    * If we don't have mapping block we just ignore
    * them. We can also reach here via shrink_page_list
    redirty_page_for_writepage(wbc, page);

    printk("redirty page %Lu\n", page_offset(page));

    return 0;
    } else {


     \ /
      Last update: 2008-10-02 14:23    [W:0.023 / U:84.816 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site