Aunque es probable que hayan pasado años desde que la mayoría de ustedes tocaron algún dispositivo Firewire, para aquellos que todavía tienen alguna vieja cámara DV o hardware de audio profesional con una interfaz IEEE-1394, Linux 6.5 está trayendo mejoras a su subsistema Firewire que hasta hace poco ha estado bastante inactivo durante años.
Hay un nuevo responsable del código IEEE-1394 (Firewire) del núcleo de Linux. Aunque Firewire ha quedado obsoleto por las más recientes tecnologías USB y Thunderbolt, el desarrollador Takashi Sakamoto espera seguir trabajando en el código del kernel de Linux hasta 2029, mientras que a partir de 2026 intentará ayudar a los usuarios a migrar a estándares más recientes. Al parecer, todavía hay quien sigue utilizándolo para dispositivos de audio y otros nichos o para dar soporte a hardware antiguo.
Entre los trabajos que Takashi aún espera realizar para el código Firewire de Linux se encuentran implementaciones para otros tipos de protocolos sobre él, como IPv4/IPv6 sobre el bus IEEE-1394, transporte SCSI, etc.
Para el kernel Linux 6.5, ahora hay marcas de tiempo asíncronas expuestas al espacio de usuario. La especificación IEEE-1394 OCHI define un medio para leer las marcas de tiempo del hardware de las comunicaciones asíncronas. Sólo ahora con Linux 6.5+ el kernel expone esas marcas de tiempo asíncronas de hardware al espacio de usuario para que las aplicaciones puedan hacer uso de ellas si así lo desean. Existe una biblioteca libhinawa actualizada para leer esas marcas de tiempo en el espacio de usuario.
El nuevo código Firewire para Linux 6.5 también moderniza el controlador de dispositivo IEEE-1394 PCM para utilizar el marco de recursos gestionados del núcleo "devres".
Más detalles sobre las actualizaciones de Firewire para Linux 6.5 a través de este Git pull.
Las colas de trabajo de Linux 6.5 añaden detección y supervisión automáticas de uso intensivo de CPU
Tejun Heo presentó la semana pasada los cambios en la cola de trabajo para el núcleo Linux 6.5 e incluyen un añadido interesante.
El código workqueue para Linux 6.5 añade detección y monitorización automáticas de uso intensivo de CPU. La serie de parches de Tejun que ha estado en curso durante varios meses explica:
"Para soportar elementos de trabajo por CPU que pueden ocupar la CPU durante un periodo sustancial de tiempo, workqueue tiene la bandera WQ_CPU_INTENSIVE que exime a los elementos de trabajo emitidos a través de la cola de trabajo marcada de la gestión de concurrencia - se inician inmediatamente y no bloquean otros elementos de trabajo. Aunque esto funciona, es propenso a errores, ya que un usuario de cola de trabajo puede olvidarse fácilmente de establecer el indicador o establecerlo innecesariamente. Además, las consecuencias de una configuración incorrecta pueden ser bastante indirectas y difíciles de determinar.
Este parche hace que workqueue detecte automáticamente los elementos de trabajo intensivos en CPU basándose en el consumo de CPU. Si un elemento de trabajo consume más del umbral (10 ms por defecto) de tiempo de CPU, se marca automáticamente como intensivo de CPU cuando se programa, lo que desbloquea el inicio de elementos de trabajo pendientes por CPU.
El mecanismo no es infalible en el sentido de que los retrasos de detección pueden acumularse si muchos elementos de trabajo que consumen mucha CPU están en cola al mismo tiempo. Sin embargo, en tales situaciones, el mayor problema probablemente sea que la CPU está saturada con elementos de trabajo por CPU y la solución sería hacerlos UNBOUND. Los cambios futuros harán que las colas de trabajo UNBOUND sean más atractivas al mejorar sus comportamientos de localidad y configurabilidad. Podríamos llegar a eliminar la bandera explícita WQ_CPU_INTENSIVE".
Así que ahora con Linux 6.5 estos elementos de trabajo pesados por CPU serán excluidos de la gestión de concurrencia para evitar retrasar la ejecución de otros elementos de trabajo.