NVIDIA no podrá usar la interfaz DMA-BUF
Leo en Slahsdot acerca de una discusión entre Alan Cox y Robert Morell de Nvidia, encargado de desarrollar el driver para el kernel Linux, que surge del interés de este último por utilizar la nueva interfaz DMA-BUF que permite compartir buffers entre módulos del kernel.
El problema radica en que al ser un módulo cerrado, no puede utilizar la interfaz DMA-BUF marcada como EXPORT_SYMBOL_GPL, que como se explica en el reporte de Linux Weekly News Letter, está puesto para que así sea.
El hilo entero de la discusión es digno de leerse. Pueden verse allí posiciones encontradas a favor y en contra. Uno de los principales obstáculos radicaría para cambiar dicho símbolo habría que consultar primero con varias decenas de programadores que no permiten que sus funcionalidades sean utilizadas desde módulos NO_GPL. Pero además hay obstáculos técnicos, a mi entender, de mucho mayor peso. Como se explica en este post de Mauro C. Chehab, un bug en un driver que use una interfaz de tan bajo nivel podría causar efectos adversos en otras partes del kernel. Los desarrolladores y mantainers necesitan poder ver el código fuente de todo el proceso para poder determinar la causa del error y para corregirlo, lo que obviamente no es posible si se utilizan drivers cerrados.
Me llamó mucho la atención de los comentarios tanto en Slashdot como en el propio hilo de la lista de Freedesktop, a favor de cambiar el símbolo. Para mi, la solución es simple y voy a ser totalmente parcial en esto. Si Nvidia quiere utilizar la interfaz, que abra el código fuente de sus drivers. Si no, que escriba su propia interfaz. En este tire y afloje, los que pierden son los usuarios, pero si damos el brazo a torcer en este caso, lo que se pierde a la larga es más precioso que la posibilidad de poder utilizar toda la funcionalidad de la placa de video.