[I side-stepped this problem by replacing my motherboard and CPU, but I'm following up here in case others find this thread and could use the additional information. I thank everyone who responded for the advice.]
On Wed, Jul 28, 2010 at 06:15:34PM -0700, Chuck Wolber wrote: > IRQs are supposed to be shared and some are specialized, so > there is no way to change which one certain devices use. I do > not think IRQ issues are your problem. I suspect it is actually > the way your kernel is handing the IO (which may have to do with > IRQs, but that is not your issue to concern yourself with unless > you are ready to roll up your sleeves and debug the kernel). > > Quite simply, try another kernel... I started with whatever kernel Ubuntu installed, and am now running a mainline kernel. The Ubuntu [Troubleshooting X freezes, hangs, and lockups page][1] recommends using [drm-intel-next mainline kernel builds][2]. I'm running 2.6.34-997-generic #201006022215 now. [1]: <https://wiki.ubuntu.com/X/Troubleshooting/Freeze> [2]: <http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/> I never found anything written to /sys/kernel/debug/dri/0/i915_error_state when X froze. Disabling compiz stopped the freezes. I came across someone's [description][3] of his experiences troubleshooting a 3ware 9650SE, in which the author wrote, "Avoid IRQ sharing, the 3Ware card must have its own IRQ line. Check it with 'cat /proc/interrupts'. Dont let the card share a PCI I/O controller with any other heavy-I/O card. Insert it in other slots." [3]: <http://makarevitch.org/rant/raid/> Taking his advice, I found: $ cat /proc/interrupts CPU0 CPU1 0: 75 0 IO-APIC-edge timer 1: 9 4078 IO-APIC-edge i8042 4: 2 0 IO-APIC-edge 8: 1 0 IO-APIC-edge rtc0 9: 0 0 IO-APIC-fasteoi acpi 12: 2129 356381 IO-APIC-edge i8042 14: 0 0 IO-APIC-edge ata_piix 15: 0 0 IO-APIC-edge ata_piix 16: 200002 0 IO-APIC-fasteoi uhci_hcd:usb5, i915, 3w-9xxx 18: 0 0 IO-APIC-fasteoi uhci_hcd:usb4 19: 0 0 IO-APIC-fasteoi ata_piix, uhci_hcd:usb3 20: 58 38482 IO-APIC-fasteoi eth0 23: 506 353870 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2 41: 1100 0 PCI-MSI-edge hda_intel NMI: 0 0 Non-maskable interrupts LOC: 2415728 2433600 Local timer interrupts SPU: 0 0 Spurious interrupts PMI: 0 0 Performance monitoring interrupts PND: 0 0 Performance pending work RES: 5215 7095 Rescheduling interrupts CAL: 87 64 Function call interrupts TLB: 70 67 TLB shootdowns TRM: 0 0 Thermal event interrupts THR: 0 0 Threshold APIC interrupts MCE: 0 0 Machine check exceptions MCP: 32 32 Machine check polls ERR: 1 MIS: 0 Seeing that line for IRQ 16 was a relief, as I figured it was an indication I'd found the root of both my video and hard disk problems. Dmesg shows: [ 7281.326373] irq 16: nobody cared (try booting with the "irqpoll" option) [ 7281.326381] Pid: 366, comm: udevd Not tainted 2.6.34-997-generic #201006022215 [ 7281.326383] Call Trace: [ 7281.326393] [<c01a84ac>] __report_bad_irq+0x2c/0x90 [ 7281.326398] [<c01a8624>] note_interrupt+0xe4/0x120 [ 7281.326402] [<c01a8f44>] handle_fasteoi_irq+0x84/0xe0 [ 7281.326406] [<c0104abf>] handle_irq+0x1f/0x30 [ 7281.326411] [<c05b32fb>] do_IRQ+0x4b/0xc0 [ 7281.326416] [<c0156639>] ? irq_exit+0x39/0x80 [ 7281.326420] [<c05b3304>] ? do_IRQ+0x54/0xc0 [ 7281.326423] [<c01032f0>] common_interrupt+0x30/0x40 [ 7281.326428] [<c05a007b>] ? pci_ni8430_exit+0x2b/0x70 [ 7281.326433] [<c012f84d>] ? __ticket_spin_lock+0xd/0x20 [ 7281.326437] [<c05ac41d>] _raw_spin_lock+0xd/0x10 [ 7281.326442] [<c0550d31>] unix_peer_get+0x21/0x50 [ 7281.326445] [<c0552bdd>] unix_dgram_poll+0xed/0x170 [ 7281.326450] [<c04c8474>] sock_poll+0x14/0x20 [ 7281.326454] [<c0222dbd>] do_poll+0xdd/0x250 [ 7281.326458] [<c012f8e8>] ? default_spin_lock_flags+0x8/0x10 [ 7281.326462] [<c0223069>] do_sys_poll+0x139/0x1b0 [ 7281.326466] [<c0222ad0>] ? __pollwait+0x0/0x70 [ 7281.326470] [<c0222b90>] ? pollwake+0x0/0x40 [ 7281.326473] [<c0222b90>] ? pollwake+0x0/0x40 [ 7281.326476] [<c0222b90>] ? pollwake+0x0/0x40 [ 7281.326481] [<c0147402>] ? update_curr+0x102/0x1b0 [ 7281.326485] [<c013e13f>] ? __enqueue_entity+0x8f/0xb0 [ 7281.326489] [<c0142752>] ? resched_task+0x22/0x70 [ 7281.326493] [<c0147a99>] ? check_preempt_wakeup+0xc9/0x110 [ 7281.326497] [<c014bc32>] ? try_to_wake_up+0xa2/0x370 [ 7281.326501] [<c014bf10>] ? default_wake_function+0x10/0x20 [ 7281.326505] [<c016c42b>] ? autoremove_wake_function+0x1b/0x40 [ 7281.326510] [<c01390d8>] ? __wake_up_common+0x48/0x70 [ 7281.326514] [<c013db25>] ? __wake_up+0x45/0x60 [ 7281.326517] [<c01687ed>] ? insert_work+0x5d/0x90 [ 7281.326521] [<c05ac44f>] ? _raw_spin_lock_irqsave+0x2f/0x50 [ 7281.326525] [<c012f8e8>] ? default_spin_lock_flags+0x8/0x10 [ 7281.326529] [<c05ac44f>] ? _raw_spin_lock_irqsave+0x2f/0x50 [ 7281.326551] [<f82ec360>] ? i915_driver_irq_handler+0x210/0x420 [i915] [ 7281.326567] [<f82ec360>] ? i915_driver_irq_handler+0x210/0x420 [i915] [ 7281.326571] [<c012f8e8>] ? default_spin_lock_flags+0x8/0x10 [ 7281.326575] [<c05ac44f>] ? _raw_spin_lock_irqsave+0x2f/0x50 [ 7281.326579] [<c012f8e8>] ? default_spin_lock_flags+0x8/0x10 [ 7281.326583] [<c05ac44f>] ? _raw_spin_lock_irqsave+0x2f/0x50 [ 7281.326598] [<f82ec360>] ? i915_driver_irq_handler+0x210/0x420 [i915] [ 7281.326602] [<c05ac41d>] ? _raw_spin_lock+0xd/0x10 [ 7281.326606] [<c012f8e8>] ? default_spin_lock_flags+0x8/0x10 [ 7281.326610] [<c05ac44f>] ? _raw_spin_lock_irqsave+0x2f/0x50 [ 7281.326625] [<f82ec360>] ? i915_driver_irq_handler+0x210/0x420 [i915] [ 7281.326629] [<c05ac41d>] ? _raw_spin_lock+0xd/0x10 [ 7281.326638] [<f80414f9>] ? twa_interrupt+0x49/0x4a0 [3w_9xxx] [ 7281.326643] [<c0154fd9>] ? timespec_add_safe+0x39/0x60 [ 7281.326647] [<c02224d3>] ? poll_select_set_timeout+0x83/0x90 [ 7281.326651] [<c0223139>] sys_poll+0x59/0xc0 [ 7281.326654] [<c0102d23>] sysenter_do_call+0x12/0x28 [ 7281.326657] handlers: [ 7281.326659] [<c0453a90>] (usb_hcd_irq+0x0/0x90) [ 7281.326664] [<f82ec150>] (i915_driver_irq_handler+0x0/0x420 [i915]) [ 7281.326678] [<f80414b0>] (twa_interrupt+0x0/0x4a0 [3w_9xxx]) [ 7281.326687] Disabling IRQ #16 -- Phil Mocek
