andy baxter wrote: > The specific problem I'm trying to solve is that the firewire card in > the laptop is on the same irq as the onboard sound card and one of the > usb ports: > > 17: 271 120 IO-APIC-fasteoi uhci_hcd:usb6, HDA Intel, ohci1394 > > [USB] Buses 1 and 2 are used by plug-in devices; 3 is used by onboard > peripherals, and the rest seem to be unused, so I assume that it doesn't > matter that usb6 is shared; only the sound-card. When an interrupt on line 17 arrives, the kernel asks all attached drivers whether their device needs servicing. Big latencies usually are the result of long-running interrupt handlers, so an unused device does not matter much, but these interrupt checks still are unneeded work. Please note that UHCI and EHCI controllers share ports; UHCI is for USB 1.x devices, EHCI, for 2.0 ones. Therefore, one of your ports will be usb6 when you connect a full- or low-speed device. (Only very incompetent laptop makers wouldn't deactivate unused controllers.) > Is what you're saying that the only way round the problem is to disable > the other devices on that irq altogether? I'm not sure whether those other interrupt handlers are much of a problem, but if they are, yes. Please note that shared interrupts are not the only latency source; interrupt handlers for any device (or system management interrupt handlers installed by the BIOS) could block the CPU for too long. And just to show off: here is my /proc/interrupts, with four PCI(e) cards: :-) CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 0: 135 0 0 7 779 205506 IO-APIC-edge timer 1: 1 0 0 0 9 7300 IO-APIC-edge i8042 4: 0 0 0 0 0 2 IO-APIC-edge 7: 0 0 0 0 0 0 IO-APIC-edge parport0 9: 0 0 0 0 0 0 IO-APIC-fasteoi acpi 14: 0 0 0 0 1 53 IO-APIC-edge pata_atiixp 15: 0 0 0 0 0 0 IO-APIC-edge pata_atiixp 16: 0 0 0 0 3 885 IO-APIC-fasteoi hda_intel 17: 0 0 0 0 0 5 IO-APIC-fasteoi firewire_ohci 18: 0 0 0 0 2 1712 IO-APIC-fasteoi radeon 19: 0 0 0 0 2 18 IO-APIC-fasteoi hda_intel 20: 0 0 0 0 134 42418 IO-APIC-fasteoi oxygen 21: 0 0 0 0 0 0 IO-APIC-fasteoi EMU10K1 22: 0 0 0 0 0 0 IO-APIC-fasteoi YMFPCI 23: 0 0 0 0 0 5 IO-APIC-fasteoi firewire_ohci 40: 565565 0 0 0 0 0 HPET_MSI-edge hpet2 41: 0 0 0 0 0 0 PCI-MSI-edge aerdrv, PCIe PME 42: 0 0 0 0 0 0 PCI-MSI-edge aerdrv, PCIe PME 43: 0 0 0 0 36 15254 PCI-MSI-edge ahci 44: 0 0 0 0 0 0 PCI-MSI-edge eth0 45: 0 0 0 0 16 713 PCI-MSI-edge ehci_hcd:usb1 46: 0 0 0 0 0 0 PCI-MSI-edge ehci_hcd:usb2 47: 0 0 0 0 0 804 PCI-MSI-edge ohci_hcd:usb3 48: 0 0 0 0 0 40 PCI-MSI-edge ohci_hcd:usb4 49: 0 0 0 0 0 1 PCI-MSI-edge ohci_hcd:usb5 50: 0 0 0 0 0 1 PCI-MSI-edge ohci_hcd:usb6 51: 0 0 0 0 0 0 PCI-MSI-edge ohci_hcd:usb7 NMI: 0 0 0 0 0 0 Non-maskable interrupts LOC: 159 538453 575689 528275 507949 690032 Local timer interrupts SPU: 0 0 0 0 0 0 Spurious interrupts PMI: 0 0 0 0 0 0 Performance monitoring interrupts IWI: 0 0 0 0 0 0 IRQ work interrupts RES: 34599 25532 23354 12203 15350 13619 Rescheduling interrupts CAL: 1122 7777 981 718 1188 11005 Function call interrupts TLB: 279 8399 908 624 485 550 TLB shootdowns THR: 0 0 0 0 0 0 Threshold APIC interrupts MCE: 0 0 0 0 0 0 Machine check exceptions MCP: 23 23 23 23 23 23 Machine check polls ERR: 0 MIS: 0 Regards, Clemens _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/listinfo/linux-audio-user