[linux-audio-user] USX2Y rawusb revisited

Devin Venable dvenable6 at cox.net
Sun Apr 23 01:14:49 EDT 2006


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





More information about the Linux-audio-user mailing list