On Fri, Feb 13, 2015 at 07:49:53PM +1100, NeilBrown wrote:
quoted
Like said, that will still recursive call delayacct_blkio_*() and would
increase nr_iowait for a second time; while arguably its still the same
one io-wait instance.
No it doesn't. There is no "blk_flush_plug" call between the
delayacct_blkio_*() calls.
Duh, clearly I needed to still wake up :/
I've moved blk_flush_plug to the beginning of the function.
I wondered if it really make sense to call blk_flush_plug with nr_iowait
elevated and delayacct_blkio active. blk_flush_plug() could call schedule()
for non-"io" reasons and maybe that could upset stuff???
Yeah, good question that. Lemme ponder that a bit.
I don't really know. I'm happy with your version. I don't suppose anyone
else is paying attention and could give a third opinion....
:-)