new interrupt code: panic when going multiuser
bde at zeta.org.au
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