Subject: Re: PR/34293 CVS commit: src/sys/dev
To: None <email@example.com>
From: YAMAMOTO Takashi <firstname.lastname@example.org>
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
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?