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@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Fri Sep 9 16:15:01 2011
This archive was generated by hypermail 2.1.8 : Fri Sep 09 2011 - 16:15:01 EEST