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 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel