new interrupt code: panic when going multiuser

Bruce Evans bde at
Wed Nov 5 00:17:46 PST 2003

On Tue, 4 Nov 2003, John Baldwin wrote:

> On 04-Nov-2003 Bruce Evans wrote:
> >> > - on a BP6, UP kernels without apic work except for cyintr(), but SMP
> >> >   kernels have problems with missing interrupts for ata devices and hang
> >> >   at boot time.
> >>
> >> Is this related to the ata-lowlevel commit you mentioned above?
> >
> > No.  It looks like the interrupt is really going missing for some
> > reason.  This is without any acpica.
> What if you try a UP kernel with 'device apic' (i.e. no options SMP),
> do you still have ata problems?  Is this on an SMP machine btw?

Yes, 'device apic' breaks the UP case in the same way that the new
interrupt code breaks the SMP case.  BP6's are SMP and mine used to
mostly work, though not well enough to actually be worth using in SMP
mode (it works faster in UP mode with its slowest CPU overclocked 42%;
mismatched CPUs and thermal problems prevent significant overclocking
in SMP mode).

Other bugs in the new interrupt code that I've noticed so far:
- lots of pessimizations.  The main one is that the PIC is now masked
  and unmasked for fast interrupt handlers.  The masking should be
  done at a higher level for all interrupt handlers so that it doesn't
  need to be undone in some cases, and neither masking not unmasking
  should be done for fast interrupt handlers.  This pessimization and
  other makes fast interrupt handlers more non-fast than before.  They
  are now slower than normal interrupt handlers in FreeBSD-[1-4].  They
  still have lower latency that normal interrupt handlers in FreeBSD-[1-4],
  but not as low as actual fast interrupt handlers.


More information about the freebsd-current mailing list