Re: PCI irq sharing and X on Linux

Martin Mares (mj@ucw.cz)
Tue, 6 Jul 1999 12:06:18 +0200


Hello,

> Sorry to disturb people in this list. This relates to: Linux
> 2.2.35, Riva128, XFree86, irq sharing.
> I don't belong to the list, so I would appreciate any help
> sent to my email. The question is if X 3.3.2 has problems
> sharing PCI interrupts, and if, being the case, this is
> solved in X 3.3.3.1. If you have patience to study the
> problem, please read on.

XFree 3.3.x should have no such problems since it uses no interrupts at all :-)

Since the machine locks up hard, it seems that it's getting interrupts again
and again and that these interrupts come from the videocard (else they would
also appear if the videocard has a different IRQ assigned). This might be
caused by the XFree card driver enabling interrupts needing to be acknowledged
(accelerator completion?), but since there is nobody listening to video card
interrupts and acknowledging them, the card doesn't release its IRQ line (PCI
IRQ's are level sensitive). You might ask why this scenario doesn't result in
crash when the IRQ's are not shared -- it's because there's nobody enabling the
card's interrupt.

I'm for obvious reasons not sure that this is exactly what does happen,
but it's at least probable, so I forward your report to the XFree
development team.

Have a nice fortnight

-- 
Martin `MJ' Mares   <mj@ucw.cz>   http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
"Coming soon: Visual Edlin for Windows."

[The rest of the original mail, so that the XFree people will have the same set of clues as I had :-) ]

> Because of a bunch of reasons (find the PC composition > below), I need to share IRQ11 between the PCI graphics card > and the PCI lan card, but I get genuine Linux crashes: > -If having done 'ifconfig ...' I start X. > -If having started X ('ifconfig ...' commented where > appropiate on rc.d), I do 'ifconfig ...'. > A hard reset is needed. I use ne2k-pci as module to support > the lan card (clone based on Realtek 8029AS chip). The > relevant line is: > if (request_irq(dev->irq, ei_interrupt, SA_SHIRQ, dev->name, > dev)) return -EAGAIN; > But I have no idea if X servers (SVGA for Elsa Victory > Erazor with Riva 128) are well behaved about interrupt > sharing. Do you know about this? Or do you guess if I miss > something? > Assigning on bios IRQ5 to the Elsa PCI slot (and not using > at all COM4/IRQ5 (see below)) all works perfectly in Linux > and X. Consider that the PC also boots in W98 and NT4 and > works perfectly on both (PCI irq sharing is admitted and, > moreless, documented in these operating systems). > Looking for related cases on the net, I see that people tend > to assign unique interrupts to devices, avoiding interrupt > sharing. > > Sincerely, Javier Vizcaino. > > P.D. The PC is MMX200 (switchable at 3x75 or 3x83) on Asus > TX97 mobo (Intel TX chipset), 96 MB, 4 GB (mobo primary IDE > IRQ14), sound ISA AWE32 (IRQ7, cuaternary IDE IRQ10 with CD > 4X), CDROM 24X (mobo secondary IDE IRQ15), diskettes 1.44 > and 1.2 (mobo, IRQ6), 4 COM's (COM1/IRQ4 and COM2/IRQ3 on > mobo, COM3/IRQ9 and COM4/IRQ5 on ISA card), 3 LPT's > (monochrome, mobo, ISA card), main VGA PCI Elsa Victory > Erazor (4 MB, Riva 128, IRQ11), second VGA PCI S3 Virge, ISA > monochrome adaptador, PS/2 mouse (mobo, IRQ12), USB mouse > (IRQ11), standard and USB keyboards, PCI lan card NE2000 > type (chip Realtek 8029AS, IRQ11), bootable with lilo on the > MBR in W98 (FAT32), NT4-SP4 (NTFS) or Linux 2.2.35. Only in > W98 second VGA (S3) and USB devices are supported, but > interrupt sharing works, as well as in NT4. In Linux, with > 'mdacon', I have a couple of virtual sessions on the > monochrome. There are two color monitors and a monochrome > one. > Assignable IRQ's: COM1/IRQ4, COM2/IRQ3, COM4/IRQ5, > sound/IRQ7, COM3/IRQ9, IDE4/IRQ10, lan-Elsa > graphics-USB/IRQ11 (PCI sharing), PS/2 mouse/IRQ12, > IDE1/IRQ14, IDE2/IRQ15. I plan to add other IDE disk, an > internal IDE Zip, a CDRW and a DVD, taking out the CD 4X, > and totalling six IDE devices. The case is a semitower with > three 5"1/4 bays. The CD/CDRW/DVD/1.2 floppy will total > four, so the 1.2 floppy, seldom used, is accessed at the > back of the PC (I cut the case and managed to fix the 1.2 > floppy). > > ************************************ > Javier Vizcaino. Ability Electronics. javizca@bbvnet.com > http://www.automodelismo.com http://ability53.hypermart.net > Starting point: (-1)^(-1) = -1 > Applying logarithms: (-1)*ln(-1) = ln(-1) > Since ln(-1) <> 0, dividing: -1 = 1 (ln(-1) is > complex, but exists)

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/