[LAU] priorities of interrupts or other fixes

Jeremy jeremy at autostatic.com
Mon Mar 8 06:09:01 EST 2010


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 at vestbjerg:~$ uname -r
> 2.6.31-20-generic
> 

Ah, I only spotted this now, in order to use rtirq you need a realtime
kernel because rtirq makes use of the tasklets API of a rt enabled kernel.

> 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?
> 

Adding as much frequency monitors as there are CPU cores.

> 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
> 

Are these processes running? If you want better performance I would
disable things like Bluetooth, PulseAudio, Evolution related things,
Compiz, wireless. But you're probably aware of that.

> My interrupts:
> atte at vestbjerg:~$ 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
> 

Firewire shares an IRQ with a USB port, maybe this could cause issues,
especially when something's on that port.

> About my hardware:
> atte at vestbjerg:~$ 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!
> 

Ricoh Firewire chipset, aren't these kind of notorious?

Best,

Jeremy


More information about the Linux-audio-user mailing list