"Did you try booting with the "irqpoll" option?"
Yes, I did. It didn't really help. It _may_ have made the system not fully lock up, but I can't say for sure. (I had a login shell open to the machine, and after the "lockup" I could still occassionally gain control of the machine (well enough to reboot, but it was very very unresponsive)
Regarding the shared interrupt being a problem, I found this on the net -- I don't know the credentials of the source, but it seemed interesting in light of what is going on with me:
Anybody who tells you "our device needs its own IRQ" is probably reading from a script written in the ISA days. If not, they're telling you that their device is not compliant with the PCI specs, and your best bet is to give it no IRQ at all. In other words, get it out of your machine completely.
I also started poking in the nvidia driver code and found this:
status = request_irq(nv->interrupt_line, nv_kern_isr,
SA_INTERRUPT | SA_SHIRQ, "nvidia",
(void *) nvl);
Two things are interesting to me. First is the nv->interrupt_line parameter. I wonder if I could hack this part of the code to request different interrupt lines for the two cards. I'm going to try to do something along those lines.
The second thing that is interesting to me is the SA_SHIRQ flag, which tells the kernel that the interrupt is shared. It seems that if the driver is informing the kernel that it is requesting a shared interrupt, then shared interrupts must be ok -- or at least that's how I'm reading it.
Could someone out there with a *working* dual card setup tell me what their /proc/interrupts file looks like. I'd like to see how your system is set up.
(I'm ordering a Gigabyte GA-8N SLI royal motherboard...If that doesn't fix it I'm going to have to talk to the devil...ATI