Subject: Re: PR/34293 CVS commit: src/sys/dev
To: None <mlelstv@serpens.de>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: netbsd-bugs
Date: 09/05/2006 21:53:37
> >  > vndstrategy isn't called from interrupt context.
> >  
> >  It is, if called from another driver (e.g. Xen block device).
> 
> I believe that this is not allowed. The strategy routine is
> part of the top half of the driver, it operates in process
> context.

have you read the referred thread?

> Saying that, I scanned other drivers and found several that may
> sleep in their strategy() routine. Most promiment scsistrategy()
> does this (by virtue of calling scsipi_command which waits for
> a free scsi transfer context in scsipi_get_xs).

scsistrategy is not a d_strategy routine.

> >  > But if that is
> >  > a problem, the feedback loop can be put into both vndread()/vndwrite().
> >  I'm not sure we're allowed to tsleep() here either.
> 
> vndread()/vndwrite() definitely do already tsleep() in physio() exactly
> when they are waiting for buffers. However, I was mistaken that these
> routines were passed when accessing the block device but they are
> only used by the raw device.

does your "mkfs.ext2" use a block device, rather than a raw device?

YAMAMOTO Takashi