Subject: Re: kern/31501: reproducible panics with 3.99.9/i386
To: None <cube@cubidou.net>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 10/07/2005 21:15:56
> Typical issue of not including "conf/std".  Yamamoto-san, I think it
> should be better to have config(1) automatically include it, otherwise
> we'll have reports like this any time we add something there.

it's what i proposed in the first place.  (as "default-options")
so i'm not against it.

> So, as you have guessed now, your problem is that you don't have any
> bufq strategy compiled into your kernel.  Now, the kernel should panic
> instead of segfaulting (what happens is that it ends up with
> bufq_strat_dummy and tries to call its init function, which is NULL).

as bufq_strat_dummy is skipped in the loop, i think bsp is NULL.

> To sum up, we have 3 bugs:
> 
>  1.  Segfault instead of panic.  Easy enough to solve, we should test
>      after the loop if we got bufq_strat_dummy, and panic.  Or even
>      make the #ifdef DEBUG block permanent and replace the printf with
>      a panic().
> 
>  2.  fdc/fd doesn't depend on BUFQ_DISKSORT in the config files.  Should
>      be easy enough to fix.

it isn't a bug.  "fallback to an existing strategy" is
an intended behaviour when i wrote the code.

>  3.  Users don't know about conf/std and what to do with it.  Proper way
>      to fix that is left as an exercise to the reader.  Even though I
>      tend to agree with Yamamoto-san's point on having conf/std
>      automatically included, users who know how config(1) works will
>      still have a choice, while those who aren't always looking at
>      source-changes (can't really blame them) won't be bitten in such
>      ways that easily.

users should read UPDATING. :-)

YAMAMOTO Takashi