[dm-devel] [RFC, PATCH] remove signal handling from dm-io.c, sync_io()

Kevin Corry kevcorry at us.ibm.com
Fri Jun 11 02:43:06 UTC 2004


On Thursday 10 June 2004 21:36, Dave Olien wrote:
> On Thu, Jun 10, 2004 at 09:24:01PM -0500, Kevin Corry wrote:
> > Now I'm not sure which BUG() call you're referring to. The sync_io() and
> > async_io() routines both eventually go through the same common code,
> > dispatch_io(). I was assuming you were referring to the BUG() statement
> > in bvec_index(), called from bio_set_alloc(), called from dispatch_io().
>
> You're right again.  The BUG() in sync_io() was only for READs.
> That was the one I was referring to.
>
> I agree with making that an error case, as you did in your
> patch.  How about making async_io() also fail for READS
> to multiple regions.... just for symmetry?

Yep, I'll add that to my tree.

> > > I'll put some thought into NOT using the bio_vec array to store
> > > the region number.
> >
> > I'll definitely agree that it would be nice to find a better way to store
> > the region number than allocating two extra bvecs. That is definitely why
> > snapshot chunks cannot go up to 1024k. I recall tracking this down when
> > you first reported the snapshot chunk-size problem a while back.
>
> Actually, ONE extra bvec is for storing the region number.  The code
> adds an ADDITONAL bvec I think because of the way it's handling offsets
> into pages.  I'm thinking of at re-writing do_region(), patterning
> it after the code in __bio_map_user().
>
> I'm going to be out a lot tomorrow, so I'll probably be working
> on this some over the week end.  Maybe I'll have something for review
> by Monday.

Sounds good. I'm eager to see what you come up with.

-- 
Kevin Corry
kevcorry at us.ibm.com
http://evms.sourceforge.net




More information about the dm-devel mailing list