Curious failure...

Doug Ledford dledford@redhat.com
Fri Dec 3 16:58:09 1999


"Robert G. Brown" wrote:
> 
> On Fri, 3 Dec 1999, Doug Ledford wrote:
> 
> > Boot the linux kernel with the option "noapic" and everything should be fine.
> > What you describe is the typical condition when the IO-APIC code in the SMP
> > kernel gets the interrupt mapping wrong.
> 
> OK, I'll try it.  Although I'm a bit curious as to why it only affects
> the SMP kernel

The UP kernel doesn't enable the IO-APIC and doesn't try to map the
interrupts.  Therefore, it doesn't screw up and loose the interrupts.

> and then only when I fail to have mem=384M set.  Is it
> the sort of thing that can sometimes be gotten right and sometimes
> wrong?

Yep.  The MP table is often times stored in an EBDA memory area just below the
640K boundary.  When you have more memory in the machine, it can cause a
memory allocation that previously would have fit in the remaining memory below
640K to get bounced up to above 1MB due to size increases.  In that case, the
MP table may not get overwritten and things may work, where as with the
smaller memory size it's possible the MP table is getting scribbled on before
it gets used in the IO-APIC code (note, this is a general bug in the linux
kernel that it doesn't properly honor the EBDA memory pointer the BIOS
maintains and therefore can scribble on BIOS needed data structures in the
EBDA area).


-- 
  Doug Ledford   <dledford@redhat.com>
   Opinions expressed are my own, but
      they should be everybody's.