location of bioq lock

Scott Long scottl at samsco.org
Fri Jul 15 06:45:26 GMT 2005


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

I agree.  The 'side queue' can be a bioq also that gets handed off in
whole to the driver once the path is unfrozen, but that's an
optimization that is best done at a later time.


Scott


More information about the freebsd-current mailing list