lkml.org 
[lkml]   [2001]   [Jun]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectBounce buffer deadlock
    Date
    From

    Has anyone else seen a hang like this:

    bdflush()
    flush_dirty_buffers()
    ll_rw_block()
    submit_bh(buffer X)
    generic_make_request()
    __make_request()
    create_bounce()
    alloc_bounce_page()
    alloc_page()
    try_to_free_pages()
    do_try_to_free_pages()
    page_launder()
    try_to_free_buffers( , 2) -- i.e. wait for buffers
    sync_page_buffers()
    __wait_on_buffer(buffer X)

    Where the buffer head X going in the top of the stack is the same as the one
    we wait on at the bottom.

    There still seems to be nothing to prevent the try to free buffers from
    blocking on a buffer like this. Setting a flag on the buffer around the
    create_bounce call, and skipping it in the try_to_free_buffers path would
    be one approach to avoiding this.

    I hit this in 2.4.6-pre6, and I don't see anything in the ac series to protect
    against it.

    Steve


    -
    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: 2005-03-22 12:55    [W:0.027 / U:0.028 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site