I'm working to get the best performance I can out of jackd working with
a Tascam US-122. Jack works well with an cheap on-board card
(frames/period 64/latency 2.9 mscec), but not so well with the US-122
(and apparently USB sound cards in general). The best frames/period I
can run it is 1024 with a lot of xruns.
I've got Ingo Molnar's realtime-preempt patch and I'm now attempting to
tune the IRQ threads. (My kernel: 2.6.15.2-rt-50studio) (Using modprobe
snd_usb_usx2y nrpacks=1)
This site describes what I'm trying to do pretty well:
http://tapas.affenbande.org/?page_id=6
I intend to tune the IRQ threads so that the usb-interrupt has highest
priority. Here are some details:
$ lsusb
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 1604:8007 Tascam US-122 Audio/Midi Interface
Bus 001 Device 001: ID 0000:0000
$ cat /proc/interrupts
CPU0 CPU1
0: 3832051 0 IO-APIC-edge timer
1: 9522 0 IO-APIC-edge i8042
7: 1 1 IO-APIC-edge parport0
8: 0 0 IO-APIC-edge rtc
9: 0 0 IO-APIC-level acpi
12: 117589 0 IO-APIC-edge i8042
14: 104 0 IO-APIC-edge ide0
50: 614644 0 IO-APIC-level ohci_hcd:usb1
58: 2 0 IO-APIC-level ehci_hcd:usb2
66: 2 0 IO-APIC-level ohci1394
217: 400222 0 IO-APIC-level libata, eth0
225: 290168 0 IO-APIC-level libata, NVidia CK804
233: 0 0 IO-APIC-level libata
NMI: 343 202
LOC: 3831594 3831830
ERR: 0
MIS: 0
I've been trying to increase the priority of IRQ 50 (ohci_hcd:usb1) like
so:
$ chrt -f -p 80 `pidof "IRQ 50"`
sched_getscheduler: No such process
failed to get pid 80's policy
It appears I have a problem getting the pidof any IRQ value.
$ echo `pidof "IRQ 0"`
$ echo `pidof "IRQ 50"`
$ echo `pidof "IRQ 9"`
pidof is installed and works...except with the IRQs.
I have another concern after reviewing another USX2Y rawusb post from
last year.
In response to a person having a similar problem as mine, one asked,
"Did you set PREEMPT_RT=y (complete real-time) on your kernel
configuration? It seems not... otherwise you would see those IRQ threads
around."
What can I do to verify the existence of the threads? What names do I
look for when running top? I don't see any command names with IRQ in
them...
Thanks,
Devin Venable