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