Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Jun 2004 00:07:33 +0200 (CEST)
From:      Lukas Ertl <le@FreeBSD.org>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        geom@FreeBSD.org
Subject:   Re: Correct GEOM bio handling 
Message-ID:  <20040610235840.Y24264@leelou.in.tern>
In-Reply-To: <65669.1086898388@critter.freebsd.dk>
References:  <65669.1086898388@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 10 Jun 2004, Poul-Henning Kamp wrote:

> Normally what you do is you block the bad plex for reading but not
> for writing.  That means all normal writes go also to the bad plex,
> no matter where on the bad plex they are located.

Ah, ok, that makes sense.

>> The rebuilding itself works fine, the requests on the waitqueue are
>> detected, but they seem to be ignored once I g_io_request() them, and the
>> process that initiated them is stuck.
>
> Can you find where they are ?  Are they on the I/O list ?

They are neither on the bio_down queue nor on the bio up queue.  They 
vanished. :-)

> What if you set debugflags=4, can you see where they went ?

I assume you meant debugflags=2, since that's the bio debuglevel, but I 
don't see them there, too.

If I biowait() on them then I can see that BIO_DONE isn't set, so it 
will not return.

Anyway, if I let writes go through unconditionally and reject all reads, 
then I probably don't have this problem at all.

thanks,
le

-- 
Lukas Ertl                         http://homepage.univie.ac.at/l.ertl/
le@FreeBSD.org                     http://people.freebsd.org/~le/



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