On Sat, Feb 28, 2009 at 01:47:07AM -0500, Yoshihiro Ota
wrote:> Hi, Luigi and Fabio:
>
> I have a question about the GEOM disk scheduler you announed a while ago.
> http://lists.freebsd.org/pipermail/freebsd-stable/2009-January/047597.html
>
> Can you tell me how does the scheduler interact with gjournal?
> Do you expect to improve response time even if used together with gjounral
> or to interfere each other?
>
> As I only had a journaled partition available for an experiment, I tried
> this combination on 7.1-RELEASE but it paniced 4 times out of 5 at attempts
> as soon as I mounted.
Hi,
a possible problem is that the scheduler uses the bio_caller1 field
in the topmost request to store classification info -- there is no
place to store the info in a standard 'bio' and changing the structure
is rather intrusive.
I see that gjournal.h has this comment:
/*
* Use bio_caller1 field as a pointer in queue.
*/
#define bio_next bio_caller1
so if gjournal is the top layer in the hierarchy there might be
a conflict.
Apart from adding a specific field to the struct bio (in the long
term this is the way to go) perhaps one could try and add a gnop
class on top of gjournal, so that would free the bio_caller1 in
the topmost bio and prevent the panic.
But thanks for the report, we will keep this in mind and in the
next release (which should happen in a week or so) we will
also add a patch or suggestion for handling this problem
cheers
luigi