Re: location of bioq lock

From: Luigi Rizzo <rizzo_at_icir.org>
Date: Fri, 15 Jul 2005 03:59:23 -0700
On Fri, Jul 15, 2005 at 08:43:17AM +0200, Poul-Henning Kamp wrote:
> In message <20050714181356.A58300_at_xorpc.icir.org>, Luigi Rizzo writes:
> 
> >Anyways there might be a way out...
> >requests go from dev_strategy()
> 
> The right place for this is geom_disk.c:g_disk_start() and the start
> routines of the drivers which do not use geom_disk.

g_disk_start() sonunds good, but i am not sure if other
drivers export the start routine. It seems to be called
more or less directly at the end of the strategy() routine of the
individual driver, and it does not always likes to find
the queue empty.

But i am still learning on the layering of these things...

cheers
luigi

> The easiest way to handle it would be to set a flag on the g_provider
> saying "no more", have g_down spill the requests into a side queue
> and when the driver is ready again, it calls some function which 
> pulls the request out of the side queue again.
> 
> 
> -- 
> Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
> phk_at_FreeBSD.ORG         | TCP/IP since RFC 956
> FreeBSD committer       | BSD since 4.3-tahoe    
> Never attribute to malice what can adequately be explained by incompetence.
Received on Fri Jul 15 2005 - 08:59:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:38 UTC