Date: Fri, 15 Jul 2005 03:59:23 -0700 From: Luigi Rizzo <rizzo@icir.org> To: Poul-Henning Kamp <phk@haven.freebsd.dk> Cc: Robert Watson <rwatson@freebsd.org>, s223560@studenti.ing.unipi.it, current@freebsd.org Subject: Re: location of bioq lock Message-ID: <20050715035923.B66753@xorpc.icir.org> In-Reply-To: <8462.1121409797@phk.freebsd.dk>; from phk@haven.freebsd.dk on Fri, Jul 15, 2005 at 08:43:17AM %2B0200 References: <20050714181356.A58300@xorpc.icir.org> <8462.1121409797@phk.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jul 15, 2005 at 08:43:17AM +0200, 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. 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@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050715035923.B66753>