[alsa-devel] Tascam US-428 USB Problems
Karsten Wiese
fzu at wemgehoertderstaat.de
Fri Aug 17 09:19:37 CEST 2007
Am Freitag, 17. August 2007 schrieb Michael Bourgeous:
>
> I have some more information. I found out that Windows users of the
> Tascam experience system BSODs when power management is enabled. So,
> I disabled PowerNow and acpid, and I no longer get the USB error
> messages in the syslog or jackd crashes. This leads me to believe
> that something, somewhere in the kernel, is relying upon the CPU cycle
> count for timing, and when the CPU switches from 1GHz to 1.8GHz or
> 2.4GHz, it triggers a buffer overrun. Whether that's in the usx2y
> driver or in the host controller code I don't know.
Try to only disable cpu speed changes.
You can "preselect" fixed speed by doing i.e.:
$ echo 1800000>/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
$ echo 1800000>/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
$ echo 1800000>/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
$ echo 1800000>/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
Is that enough to stabilize things?
I think the buffer overrun is caused by the cpu not "cooperating" with the
OHCI's DMA during the frequency transitions.
>
> Still, performance is less than I would expect, with occasional xruns
> and hundreds of "delay longer than estimated" messages, when running
> at 256 samples latency (the setting I typically use in Windows). To
> the credit of the Linux driver, I'm able to get down to 128 samples (2
> periods of 64 frames), but I can only play a few notes at a time in
> ZynAddSubFX before it xruns. Performance is slightly better with
USB 1.1 transfers happen at 1ms bounderies. Setting 64Frames/period period
interrupts will happen within 1ms or 2ms distances.
This jitter alone limits the cpu's usability for the sound app to less
than 50%.
128Frames/period causes interrupts every 2 or 3 ms, so you can use <66%
of the cpu's cycles.
Above is for 2 periods.
I set 128Frames/period, 3periods here.
Karsten
> jackdmp, which I modified to fully disable its broken usx2y driver,
> but its use is very inconvenient. I also switched from jackd 102.20
> to 103, which doesn't crash when the syslog messages happen.
>
> I'm running a 2.6.20 kernel with full preemption, with the IRQ-xx
> process for the USB port set to RT priority 90, SCHED_FIFO. During
> all of these tests, the maximum latency reported in
> /proc/sys/preempt_max_latency was 33 usecs.
>
> Mike Bourgeous
>
>
More information about the Alsa-devel
mailing list