Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Jul 2005 00:45:24 -0600
From:      Scott Long <scottl@samsco.org>
To:        Poul-Henning Kamp <phk@haven.freebsd.dk>
Cc:        Luigi Rizzo <rizzo@icir.org>, s223560@studenti.ing.unipi.it, Robert Watson <rwatson@freebsd.org>, current@freebsd.org
Subject:   Re: location of bioq lock
Message-ID:  <42D75B84.7090601@samsco.org>
In-Reply-To: <8462.1121409797@phk.freebsd.dk>
References:  <8462.1121409797@phk.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
Poul-Henning Kamp wrote:
> In message <20050714181356.A58300@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42D75B84.7090601>