Re: [RFC] IRQ handlers run with some high-priority interrupts(not NMI) enabled on some platform

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 19, 2021 at 09:10:57AM +0100, Geert Uytterhoeven wrote:
Hi Michael,

On Thu, Feb 18, 2021 at 11:11 PM Michael Schmitz <schmitzmic@xxxxxxxxx> wrote:
On 19/02/21 12:19 am, Arnd Bergmann wrote:
drivers/net/ethernet/8390/apne.c
drivers/net/ethernet/8390/ax88796.c
drivers/net/ethernet/8390/hydra.c
drivers/net/ethernet/8390/mac8390.c
drivers/net/ethernet/8390/ne.c
drivers/net/ethernet/8390/zorro8390.c
[...]
Most of these are normal short-lived interrupts that only transfer
a few bytes or schedule deferred processing of some sort.
Most of the scsi and network drivers process the data in
a softirq, so those are generally fine here, but I do see that 8390
(ne2000) ethernet and the drivers/ide drivers do transfer their
data in hardirq context.

         Arnd

8390 ethernet drivers are widely used on m68k platforms (Amiga and
Atari). At least on Amiga, the corresponding interrupt is a hardirq so
I'd advise caution. That said, the 8390 drivers might benefit from some
refactoring (the way these drivers are compiled does prevent e.g. the
APNE driver from being used with two different variants of PCMCIA
interfaces. I had begun some work on making IO primitives runtime
selected two years ago but that ended up looking too ugly ...).

Can't recall what IPL the 8390 interrupts operate at - Geert?

#define IRQ_AMIGA_PORTS         IRQ_AUTO_2

Zorro expansion boards can also use

#define IRQ_AMIGA_EXTER         IRQ_AUTO_6

and some boards may have a jumper to select the latter, but all Amiga
Linux drivers use IRQ_AMIGA_PORTS.

The mac8390 driver will show up wherever NuBus interrupts are routed,
which varies by hardware. It's frequently IRQ_AUTO_2 (due to being
routed through the second VIA chip on most models), but it can be in
other places on systems that don't use a second VIA chip.  On the IIfx,
NuBus interrupts get routed through OSS to IRQ_AUTO_3. I don't see any
cases that use other interrupt levels, but some of the logic is a
little harder to follow.

It's not an 8390, but it looks like macmace actually uses two levels. The
regular interrupt should show up at IRQ_AUTO_3 and the DMA interrupts at
IRQ_AUTO_4. Most Macs only use 4 for serial, but this is an exception.

	Brad Boyer
	flar@xxxxxxxxxxxxx




[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux