Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Dec 2001 16:05:37 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        alpha@FreeBSD.org
Subject:   Found bug with interrupts on current
Message-ID:  <XFMail.011218160537.jhb@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
I have been having problems on the DS20 I have here with it getting interrupts
stuck disabled under load when SMP is enabled, and I think I've found the
problem.  The various places in the platform code where we enable and disable
an interrupt don't use any locks.  At best, some of them use splhigh/splx
(which doesn't do any good), so it seems there are several places where races
could clobber interrupt masks on both UP and SMP systems.  I've added a new
spin lock to fix this but haven't tested it yet. :)  (So it's currently in the
smpng p4 tree until I can confirm that it works.)  FWIW, x86 UP also was
subject to some potential races as well I think.  Also, there are a couple of
minor notes:

1) The EBPC164 and PC164 interrupt enable/disable code is all in assembly, so
   I may need to add C wrappers around them that grab and release the lock as
   needed.
2) The dwlpx code in alpha/tlsb doesn't even have enable/disable hooks for
   interrupts at all, so it's likely very broken on current at the moment.
   I havent' fixed this yet because there was discussion a while back about
   dropping support for it, but fixing it wouldn't be that hard as the code
   to do it is already present.  All that is needed are some wrapper functions
   to enable/disable and to take a vector and extract the intpin from it.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

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




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