CPU time accounting broken on 8-STABLE machine after a few
hours of uptime
Don Lewis
truckman at FreeBSD.org
Sat Oct 2 00:32:47 UTC 2010
On 30 Sep, Don Lewis wrote:
> The silent reboots that I was seeing with WITNESS go away if I add
> WITNESS_SKIPSPIN. Witness doesn't complain about anything.
I've tracked down the the silent reboot problem. It happens when a
userland sysctl call gets down into calcru1(), which tries to print a
"calcu: .." message. Eventually sc_puts() wants to grab a spin lock,
which causes a call to witness, which detects a lock order reversal.
This recurses into printf(), which dives back into the console code and
eventually triggers a panic.
I'm still gathering the details on this and I see what I can come up
with for a fix.
> I tested -CURRENT and !SMP seems to work ok. One difference in terms of
> hardware between the two tests is that I'm using a SATA drive when
> testing -STABLE and a SCSI drive when testing -CURRENT.
I'm not able to trigger the problem with -CURRENT when it is running on
a SCSI drive, but I do see the freezes, long ping RTTs, and ntp insanity
when running a !SMP -CURRENT kernel on my SATA drive with an 8.1-STABLE
world.
More information about the freebsd-stable
mailing list