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

Dave Olien dmo at osdl.org
Fri Jun 11 20:34:58 UTC 2004


On Fri, Jun 11, 2004 at 02:09:11PM +0000, Kevin Corry wrote:
> On Friday 11 June 2004 11:48 am, Kevin Corry wrote:
> 
> After talking to Alasdair a bit, it seems like there still might be a reason
> for using the interruptible wait in sync_io(). The point he brought up was
> that if you are using dm-io to do I/O to another DM device, and that DM device
> is suspended, then the I/O may never complete if the device doesn't get
> unsuspended (for some reason). In this case, you'd like to be able to
> interrupt the process that's waiting for that I/O so it isn't stuck in D-state
> forever.

Well, it just means it's stuck in D state until the lower-level device
is unsuspended.  I guess I'm skeptical of the need or desire
to make this signal-able. I'll give it some thought.

> 
> So this means we need to allocate a struct io from the mempool in sync_io()
> instead of declaring it on the stack. Here's a patch that should accomplish
> this. It ain't pretty, but I think it gets the job done. It requires some
> changes in dec_count(), and I've also replaced the io_schedule() loop with a
> call to wait_event_interruptible(). Now everyone take a look and tell me how
> ugly this is. :)  And if anyone can think of something more elegant, please
> let me know.

I've not looked at your patch yet. I just got in, and I need to leave again shortly.
I'll look at it this week end.

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



More information about the dm-devel mailing list