[dm-devel] [PATCH 2/5] block: make bio_inc_remaining() interface accessible again

Joe Thornber thornber at redhat.com
Fri May 6 16:46:56 UTC 2016


On Fri, May 06, 2016 at 06:27:05PM +0200, Christoph Hellwig wrote:
> On Fri, May 06, 2016 at 12:19:16PM -0400, Mike Snitzer wrote:
> > (this is a direct result of completing the discard bio before all
> > mappings, and associated sub-discards, have):
> 
> The completion order really should not matter, we rely on it not
> mattering for almost every usage of the bio_chain API.  So there
> is something else fishy going on here.  What's your test case?
> I'd like to dig a bit deeper into this.

Completion order isn't important.  The issue we have is there are two
levels of fragmentation that we see with thinp.

First a large discard (eg, mkfs) comes in.  We then break this up into
mapped regions.  Then each region is quiesced individually.  Once
quiesced we then can discard the region, with the extra twist that we
can't discard any areas that are shared between snapshots.  The
patches Mike posted switch to use your new bio_chain/blk_issue_thing
(which I like btw) on the bottom level (ie, each region).  So we need
some form of ref counting to work out when all the mid level regions
are complete and hence we can complete the original bio.

It's not rocket science, and is generating far more discussion than is
neccessary.  If I can't piggy back on the bio's ref count, I'll create
my own.

- Joe




More information about the dm-devel mailing list