kern/123140: [smp] SMP boot causes slow KB,
ATA drives not detected
Bob Frazier
bobf at mrp3.com
Tue May 27 06:20:04 UTC 2008
The following reply was made to PR kern/123140; it has been noted by GNATS.
From: Bob Frazier <bobf at mrp3.com>
To: bug-followup at FreeBSD.org
Cc: gavin at FreeBSD.org, freebsd-bugs at FreeBSD.org
Subject: Re: kern/123140: [smp] SMP boot causes slow KB, ATA drives not detected
Date: Tue, 27 May 2008 00:16:26 -0700
inserted test code into lapic_handle_timer to indicate the proper
execution of timer interrupt callbacks by printing a message once every
4096 times that the function is called. The test code was inserted as
follows.
lapic_handle_timer(struct trapframe *frame)
{
// BBB begin
static int iBBBIter = 0;
// BBB end
struct lapic *la;
/* Send EOI first thing. */
lapic_eoi();
// BBB begin
if(!((iBBBIter++) & 0xfff))
{
printf("TEMPORARY - cpu %d timer tick %xH\n",
PCPU_GET(cpuid), iBBBIter - 1);
}
// BBB end
observations:
a) just prior to the point of failure (when disk access is being
attempted), only CPU #0 is calling the ISR, and the ISR appears to be
invoked approximately 2000 times per second. Divider value is assigned
to a value of '66666' or '66667' (same value for all 4 CPUs).
b) at the actual point of failure (ATA drives not detected) it appears
as if there are still timer callbacks being invoked. Drive detection
takes place after the 'firewire' setup message and before the additional
CPUs are initialized.
c) once the 'mountroot' prompt appeared, only a single CPU (varies each
time I retried) received timer interrupts. These timer interrupts
appear to be taking place 4 times as often (is this because of the 4 CPU
cores?)
d) after pressing <ENTER> at 'mountroot' and getting the 'db' prompt,
entering 'continue' allowed the other CPUs to get their timer interrupts
prior to system restart.
More information about the freebsd-bugs
mailing list