He cambiado la tarjeta de slot y ahora ya tengo firewire en la IRQ 19 de manera exclusiva, pero me marca latencia 32ms igualmente. Adjunto registro nuevamente:
[code]04:00.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (prog-if 10 [OHCI])
Flags: bus master, medium devsel, latency 32, IRQ 19
Memory at ec004000 (32-bit, non-prefetchable) [size=2K]
Memory at ec000000 (32-bit, non-prefetchable) [size=16K]
Capabilities:
[/code]
Ando bastante perdido. No me gasté una pasta con una tarjeta de audio de ultrabaja latencia para tragarme la latencia de la controladora.
La IRQ 19 no existe, es una IRQ virtual. Intenta deshabilitando APIC en el BIOS e intenta por todos los medios que la tarjeta coja la 10 o la 11.
No te garantizo que puedas hacerlo. En tiempos de Windows 98, el Pentium III y la ASUS P3B-F era casi obvio pinchar las tarjetas y darle a cada una la IRQ que te apetecia darla. Luego llego Windows XP, APIC, y a los fabricantes les empezo a dar igual el asunto de las IRQ. En su descargo, es muy extrano que hoy en dia una tarjeta, controladora de red, USB2 o Firewire no comparta IRQ sin problemas con cualquier otra cosa.
Si no consigues nada dimelo por aqui y pregunto en linux-audio-user.
Puedes arrancar tu kernel con las opciones "noapic" y/o "nolapic" y teóricamente debería desactivarse la asignación de IRQ virtuales y tu tarjeta debería quedarse con la IRQ que le asigne la BIOS. Prueba y nos cuentas.
Sabes añadir las opciones al kernel durante el arranque, ¿no?
He mirado la BIOS de arriba a abajo y no hay nada de APIC. Lo más que se parece es ACPI suspend type y no tiene nada que ver. Las interrupciones 10 y 11 están libres por lo que iría de perlas ponerla allí.
No tengo mucha maña añadiendo modulos al núcleo. Ya busco por Google a ver si me entero...
Saludos Ivalladt!
Tu consejo ha funcionado que ni pintado. Con la opción noapic me respeta la asignación de la BIOS. Ahora ya no comparte nada con ningun otro dispositivo. La mala notícia es que me sigue poniendo latency 32. Ya no me quedan ideas:
[code]04:00.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (prog-if 10 [OHCI])
Flags: bus master, medium devsel, latency 32, IRQ 11
Memory at ec004000 (32-bit, non-prefetchable) [size=2K]
Memory at ec000000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [44] Power Management version 2
[/code]
¿Será un problema de la tarjeta? No creo que una controladora que montan los de Citriq añada 32 ms de latencia y se queden tan anchos. ¿Alguna sugerencia? Gracias por tu tiempo.
Se lo pregunto a los gurús y ya te cuento...
Ahora que lo pienso, ¿estás corriendo un kernel rt?
Ja ja ja. Sí claro. Ubuntu studio con:
marcel@ubuntu:~$ uname -a
Linux ubuntu 2.6.22-14-rt #1 SMP PREEMPT RT Tue Feb 12 09:57:10 UTC 2008 i686 GNU/Linux
Vaya susto, ¿no?
My colleague bought a Presonus FP10 firewire audio interface, which
reports working nice in Linux. Moreover he owns a firewire controller
made by Sunix with a Texas Instruments chipset. He tells us that for
having jackd working without xrun and no other artifacts he needs to
use 512 frame/periods, then latency is 34ms, which could be considered
awful as this card is able to work with 2ms latency using other
operating systems.
He checked IRQ and saw that the firewire controller shared IRQ with
the network interface. Check out output of lspci -v .
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
Subsystem: Giga-byte Technology Unknown device e000
Flags: bus master, fast devsel, latency 0, IRQ 17
I/O ports at a000
Mil gracias. Yo ya cruzo los dedos.