Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Mar 2002 08:20:53 +0900
From:      qhwt@myrealbox.com
To:        current@FreeBSD.ORG
Subject:   Re: Won't boot after the commits to timecounter code
Message-ID:  <20020314232053.GA355.qhwt@myrealbox.com>
In-Reply-To: <20020307014007.GA622@gzl>
References:  <20020306134746.GA342@gzl> <20020307040247.T9712-100000@gamplex.bde.org> <20020307014007.GA622@gzl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Mar 07, 2002 at 10:40:07AM +0900, I wrote:
> > Apparently you have KTR enabled (not the default in GENERIC).  I think
> > WITNESS+KTR already caused nasty recursion from the mtx_lock_spin, and
> > we now get an endless loop when nanotime() is called with an invalid
> > timecounter in the following call chain:
> >
> >     tc_init -> tc_windup -> tco_delta -> i8254_get_timecount -> mtx_foo ->
> >     witness_foo -> ktr_foo -> nanotime,
> >
> > just after nanotime has somehow recursed back into i8254_get_timecounter
> > without causing endless recursion!
> 
> Yes, I have the following KTR options enabled (I think I brought this from
> NOTES about a year before):
>   options 	KTR
>   options 	KTR_EXTEND
>   options 	KTR_ENTRIES=1024
>   options 	KTR_COMPILE=0x3fffff
>   options 	KTR_MASK=0x201208
>   options 	KTR_CPUMASK=0x3
> 
> but WITNESS is commented out.
> 
> > Try setting MTX_NOWITNESS in the initialization of clock_lock in
> > i386/machdep.c.
> 
> O.k., I'll try this(but does it affect a kernel without WITNESS?), then
> try a kernel without KTR options.

I've found the following:
- KTR alone can make this happen; it locked solid with or without WITNESS.
- Setting MTX_NOWITNESS in the initialization of clock_lock didn't work.
- If I disable KTR, it just works fine without any patches.
- If I enable KTR with KTR_LOCK in "options KTR_MASK", it freezes after
	Timecounter "i8254"  frequency 1193182 Hz
    message.
- If I enable KTR without KTR_LOCK in "options KTR_MASK",
    it boots but it locks solid the moment I inserted a pccard
    (I'm using OLDCARD).

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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