Date: Mon, 24 Sep 2001 21:35:56 +0200 From: Wilko Bulte <wkb@freebie.xs4all.nl> To: John Baldwin <jhb@FreeBSD.org> Cc: Garrett Wollman <wollman@khavrinen.lcs.mit.edu>, current@FreeBSD.org Subject: Re: Seen this lock order reversal? Message-ID: <20010924213556.A16239@freebie.xs4all.nl> In-Reply-To: <XFMail.010924123332.jhb@FreeBSD.org>; from jhb@FreeBSD.org on Mon, Sep 24, 2001 at 12:33:32PM -0700 References: <20010923204929.A11867@freebie.xs4all.nl> <XFMail.010924123332.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Sep 24, 2001 at 12:33:32PM -0700, John Baldwin wrote:
>
> On 23-Sep-01 Wilko Bulte wrote:
> > On Thu, Sep 20, 2001 at 07:40:52PM +0200, Wilko Bulte wrote:
> >> On Wed, Sep 19, 2001 at 01:32:28PM -0700, John Baldwin wrote:
> >> >
> >> > On 19-Sep-01 Wilko Bulte wrote:
> >> > > On Tue, Sep 18, 2001 at 03:01:25PM -0700, John Baldwin wrote:
> >>
> >> ...
> >>
> >> > >> p_flag to p_sflag which changed its locking semantics.)
> >> > >
> >> > > Another one, on a -current from yesterday, on -alpha:
> >> > >
> >> > > lock order reversal
> >> > > 1st 0xfffffc00007fcef0 clk @ ../../../alpha/alpha/clock.c:702
> >> > > 2nd 0xfffffc00007f65d8 callout @ ../../../kern/kern_timeout.c:225
> >> > > ds10#
> >> >
> >> > Hmm, ok, that one is new and is a problem. Can you turn on WITNESS_DDB
> >> > (it's
> >> > available as the debug.witness_ddb sysctl and loader variableas well) and
> >> > then
> >> > get me a traceback in ddb?
> >>
> >> I built a GENERIC with WITNESS_DDB. Sofar (of course... :-/ ) no
> >> reproduction of the problem. I'm running buildworlds, any other good
> >> suggestions to help trigger it are welcome
> >
> > Bah. I cannot reproduce this on my DS10.
> >
> > Is there any reason to assume that specifying CPUTYPE ev56 has any
> > influence on the lock order reversal? By default world is built with
> > ev4, but I have gone to ev56 now. Rumor has it that results in 'less
> > buggy' code.
>
> No. Hmmm. You didn't have any KTR traces enabled did you?
No.
> Hmm, that first one is in sysbeep() (the clk one) Ah!
>
> if (!beeping) {
> /* enable counter2 output to speaker */
> if (pitch) outb(IO_PPI, inb(IO_PPI) | 3);
> beeping = period;
> timeout(sysbeepstop, (void *)NULL, period);
> }
>
> This is the problem code. Hmmm. The i386 code seems b0rked. It doesn't have
> enough locks! Eck. hmm, the pc98 code doesn't even _use_ the mutex but still
> depends on disable/enable intr. Eek. I'll work at this later on today.
I did notice that the default Alpha beep is of a much higher frequency
than the x86 one. Any relation? (long shot... I suppose)
W/
--
| / o / /_ _ email: wilko@FreeBSD.org
|/|/ / / /( (_) Bulte Arnhem, The Netherlands
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?20010924213556.A16239>
