Re: [LAU] priorities of interrupts or other fixes

From: Jeremy <jeremy@email-addr-hidden>
Date: Mon Mar 08 2010 - 13:00:27 EET

On 03/08/2010 11:31 AM, Atte André Jensen wrote:
> Hi
>
> Normally my ubuntu 9.10 with ubuntu stock kernel performs just fine for
> me. I'm running through an edirol FA66 firewire sound card with 8ms latency.
>
> However now I'm starting to prepare for some live performances, and now
> things could (or should oar even *must*) perform better.
>
> As some might know, my main audio application is renoise, but since it's
> closed source, maybe we should focus more on how the problem manifests
> itself in other ways?
>
> Good example: I get two xrun about 2 seconds apart) when I open a
> gnome-terminal. This is with no jackclients running, just qjackctl on
> 8ms latency through the firewire card.
>
> This is normally no problem since if I work in renoise things really
> stable (no xruns) and responsive. But for live usage I'm gonna throw
> other applications (PD, chuck, sooperlooper) into the equation, so...
>
> About my setup:
> Laptop, 2GHz dual core, 2G ram.
>
> atte@email-addr-hidden:~$ uname -r
> 2.6.31-20-generic
>
> I have this in my limits.conf:
> @audio - rtprio 99
> @audio - memlock unlimited
>
> I notice a drastic improvement if I set the frequency govenor to
> "performance" through the gnome panel applet, but I just discovered
> (through "grep MHz /proc/cpuinfo" that this only seems to set one core
> to 2Ghz, the other seems to be running "on demand". Shouldn't they both
> be running at full steam, and how do I make them?
>
> But my first thought (as reflected my the subject) was to raise the
> priority for the firewire card. However I seem to need help figuring out
> how to do that. For instance the last time I did this I used 'pidof "IRQ
> 8', which doesn't work here (neither on ubuntu repo rt-kernel), pidof
> auto completes to this list:
>
> Display all 124 possibilities? (y or n)
> 0 indicator-users-service
> 1 init
> acpid iwl3945
> ata_aux jackd
> atd kacpid
> avahi-daemon kacpi_hotplug
> bash kacpi_notify
> bluetooth khelper
> bluetooth-applet khpsbpkt
> bonobo-activation-server khubd
> compiz.real khungtaskd
> console-kit-daemon kjournald
> cpufreq-applet kmmcd
> cpuset kmpath_handlerd
> cron knodemgrd_0
> cupsd kpsmoused
> dbus-daemon krfcommd
> dbus-launch kseriod
> dd ksnapd
> devkit-disks-daemon kstriped
> devkit-power-daemon ksuspend_usbd
> dhclient kswapd0
> ecryptfs-kthrea kthreadd
> evolution-alarm-notify mgr
> evolution-data-server-2.28 modem-manager
> evolution-exchange-storage mono
> firefox multiload-applet-2
> gconfd-2 nautilus
> gdm-binary netns
> gdm-session-worker NetworkManager
> gdm-simple-slave nm-applet
> gdu-notification-daemon notify-osd
> getty pdflush
> gnome-keyring-daemon phy0
> gnome-panel polkitd
> gnome-power-manager polkit-gnome-authentication-agent-1
> gnome-pty-helper ps
> gnome-screensaver pulseaudio
> gnome-session python
> gnome-settings-daemon qjackctl.bin
> gnome-terminal renoise
> gnome-volume-control-applet rsyslogd
> gtk-window-decorator scsi_eh_0
> gvfsd scsi_eh_1
> gvfsd-burn scsi_eh_2
> gvfsd-metadata scsi_eh_3
> gvfsd-trash scsi_eh_4
> gvfs-fuse-daemon scsi_eh_5
> gvfs-gdu-volume-monitor seahorse-daemon
> gvfs-gphoto2-volume-monitor sed
> hald sh
>
> My interrupts:
> atte@email-addr-hidden:~$ cat /proc/interrupts
> CPU0 CPU1
> 0: 332326 331479 IO-APIC-edge timer
> 1: 784 769 IO-APIC-edge i8042
> 8: 1 0 IO-APIC-edge rtc0
> 9: 1064 1081 IO-APIC-fasteoi acpi
> 12: 75 78 IO-APIC-edge i8042
> 14: 3590 3577 IO-APIC-edge ata_piix
> 15: 0 0 IO-APIC-edge ata_piix
> 16: 118009 118898 IO-APIC-fasteoi uhci_hcd:usb3, ohci1394
> 17: 0 0 IO-APIC-fasteoi mmc0
> 18: 7196 7100 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb7
> 19: 0 0 IO-APIC-fasteoi uhci_hcd:usb6
> 21: 0 0 IO-APIC-fasteoi uhci_hcd:usb4
> 22: 288 318 IO-APIC-fasteoi HDA Intel
> 23: 10 10 IO-APIC-fasteoi ehci_hcd:usb2, uhci_hcd:usb5
> 28: 6897 6865 PCI-MSI-edge ahci
> 29: 957 883 PCI-MSI-edge eth0
> 30: 6253 6394 PCI-MSI-edge i915
> 31: 0 0 PCI-MSI-edge iwl3945
> NMI: 0 0 Non-maskable interrupts
> LOC: 326940 325631 Local timer interrupts
> SPU: 0 0 Spurious interrupts
> CNT: 0 0 Performance counter interrupts
> PND: 0 0 Performance pending work
> RES: 265237 265761 Rescheduling interrupts
> CAL: 60 111 Function call interrupts
> TLB: 422 295 TLB shootdowns
> TRM: 0 0 Thermal event interrupts
> THR: 0 0 Threshold APIC interrupts
> MCE: 0 0 Machine check exceptions
> MCP: 2 3 Machine check polls
> ERR: 0
> MIS: 0
>
> About my hardware:
> atte@email-addr-hidden:~$ lspci
> 00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory
> Controller Hub (rev 03)
> 00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960
> Integrated Graphics Controller (rev 03)
> 00:02.1 Display controller: Intel Corporation Mobile GM965/GL960
> Integrated Graphics Controller (rev 03)
> 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
> Controller #4 (rev 03)
> 00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
> Controller #5 (rev 03)
> 00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI
> Controller #2 (rev 03)
> 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio
> Controller (rev 03)
> 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express
> Port 1 (rev 03)
> 00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express
> Port 2 (rev 03)
> 00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express
> Port 3 (rev 03)
> 00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express
> Port 4 (rev 03)
> 00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
> Controller #1 (rev 03)
> 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
> Controller #2 (rev 03)
> 00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI
> Controller #3 (rev 03)
> 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI
> Controller #1 (rev 03)
> 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
> 00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface
> Controller (rev 03)
> 00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E)
> IDE Controller (rev 03)
> 00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E)
> SATA AHCI Controller (rev 03)
> 00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller
> (rev 03)
> 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
> RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 01)
> 04:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG
> [Golan] Network Connection (rev 02)
> 0a:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller
> (rev 05)
> 0a:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro
> Host Adapter (rev 22)
> 0a:01.2 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev 12)
> 0a:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host
> Adapter (rev 12)
> 0a:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev ff)
>
> So basically I'm a bit lost here. Any help or input would be greatly
> appreciated!
>

Hello Atte,

Best is to disable frequency scaling altogether. Or add more CPU
frequency monitors to your panel, one for each core. And you could take
a look at rtirq: http://ubuntuforums.org/showthread.php?t=1328175
And the FFADO wiki: http://subversion.ffado.org/wiki/IrqPriorities
This improved performance on all my machines drastically, especially
with my Focusrite Saffire Pro.

Best,

Jeremy
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Mon Mar 8 16:15:02 2010

This archive was generated by hypermail 2.1.8 : Mon Mar 08 2010 - 16:15:02 EET