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

Kevin Corry kevcorry at us.ibm.com
Fri Jun 11 02:24:01 UTC 2004


On Thursday 10 June 2004 21:04, Dave Olien wrote:
> Yup, you're right.   I guess that explains why the async_io() routine
> doesn't have the same BUG() calls.  All the raid1 calls are to async_io().

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().

> 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.

> So if the multi-region code works for async_io(), is there any reason
> we shouldn't just remove the BUG() calls from sync_io(), to keep
> the interfaces symmetric?

Again, I'm not sure which BUG() you're referring to here. My patch earlier 
removed one from sync_io(), but that was simply a check to make sure no one 
was trying to *read* to multiple regions at the same time (which should be 
handled by returning an error instead of BUG()ing).
-- 
Kevin Corry
kevcorry at us.ibm.com
http://evms.sourceforge.net




More information about the dm-devel mailing list