lkml.org 
[lkml]   [2012]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [dm-devel] [PATCH v7 9/9] block: Avoid deadlocks with bio allocation by stacking drivers
    On Wed, Aug 29, 2012 at 08:57:59AM -0400, Vivek Goyal wrote:
    > I would say keep all the bio splitting patches and any fixes w.r.t
    > deadlocks in a seprate series. As this is little complicated and a lot
    > of is just theoritical corner cases. If you limit this series to just
    > bio_set related cleanups, it becomes more acceptable for inclusion.

    Yes, please keep the splitting patches separate. The current code gets
    away with what it does through statistics making the deadlocks very
    unlikely.

    It's also instructive to remember why the code is the way it is: it used
    to process bios for underlying devices immediately, but this sometimes
    meant too much recursive stack growth. If a per-device rescuer thread
    is to be made available (as well as the mempool), the option of
    reinstating recursion is there too - only punting to workqueue when the
    stack actually becomes "too big". (Also bear in mind that some dm
    targets may have dependencies on their own mempools - submission can
    block there too.) I find it helpful only to consider splitting into two
    pieces - it must always be possible to process the first piece (i.e.
    process it at the next layer down in the stack) and complete it
    independently of what happens to the second piece (which might require
    further splitting and block until the first piece has completed).

    Alasdair



    \
     
     \ /
      Last update: 2012-08-29 17:21    [W:5.158 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site