Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / Guía de Usuario del Controlador Tulip - Operación del Controlador

Guía de Usuario del Controlador Tulip - Operación del Controlador

 ----- 
GNU Free Documentation License Tutorial de Jeff Garzik - 02 de Marzo de 2006
Temas Relacionados: PC
3. Operación del Controlador

buffers de Anillo


El Tulip puede usar buffers de anillo o lista de descriptores Tx y Rx. Este controlador usa anillos estáticamente asignados de descriptores Rx y Tx, establecidos en tiempo de compilación por RX/TX_RING_SIZE. Esta versión del controlador asigna skbuffs para los buffers de anillo Rx en tiempo de open() y pasa el campo skb-data al Tulip cuando recibe los buffers de datos. Cuando un frame que llega es menor que RX_COPYBREAK bytes de grande, un nuevo skbuff es asignado y el frame es copiado en el nuevo skbuff. Cuando el frame que llega es más grande, el skbuff es pasado directamente a la pila de protocolos y reemplazado por un skbuff nuevamente asignado.

El valor RX_COPYBREAK es escogido para equilibrar la memoria gastada usando un skbuff lleno para los frames pequeños vs. los costes de copiado para los frames grandes. Para los frames pequeños los costes de copiado son insignificantes (considerando que estamos precargando la caché con inmediatamente con información útil de la cabecera). Para frames grandes los costes de copiado no son triviales, y la copia más grande quizás borre datos útiles de la caché. Un aspecto sutil de esta elección es que el Tulip sólo recibe en buffers de palabras grandes (64 bits) alineadas, esto es, la cabecera IP con un desplazamiento de 14 no es una palabra grande alineada para un procesamiento más amplio. Los frames copiados son puestos en el nuevo skbuff con un desplazamiento de "+2", entonces copiando tiene el efecto beneficioso de alinear la cabecera IP y precargar la caché.

Sincronización


El controlador se ejecuta como dos flujos de control de un sólo hilo independientes. Uno es la rutina de enviar paquetes, que fuerza el uso de un hilo simple por medio de la flag dev->tbusy. El otro hilo es el manejador de interrupciones, que es un hilo simple por culpa del hardware y de otro software.

El hilo de enviar paquetes tiene control parcial sobre el anillo Tx y sobre la bandera 'dev->tbusy'. Establece la bandera tbusy cuando está encolando un paquete Tx. Si el siguiente slot de la cola está vacío, límpia la bandera tbusy cuando ha acabado y en otro caso establece la bandera 'tp->tx_full'.

El manejador de interrupciones tiene un control exclusivo sobre el anillo Tx y las estadísticas grabadas para el anillo Tx. (La interrupción Tx-done no puede ser desconectada selectivamente, por lo tanto no podemos eliminar la interrupción sobre nosotros teniendo la rutina Tx recogiendo las estadísticas Tx.) Después de recoger las estadísticas, marca la cola de entrada como vacía estableciendo la 'base' a cero. Si la bandera 'tp->tx_full' está establecida, entonces limpia las banderas tx_full y tbusy.
Autor y licencia de 'Guía de Usuario del Controlador Tulip - Operación del Controlador'
Jeff Garzik Extraído de: http://es.tldp.org/Manuales-LuCAS/linux-tulip/multiple-html/index.html GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.es.gnu.org/licencias/fdles.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Guía de Usuario del Controlador Tulip - Operación del Controlador'

QUE ES UN PLC, Un controlador logico programable, es un automata, que sustituye circuitos secuenciales... Más »
Los textos científicos tienen ciertas particularidades que fuerzan el uso de herramientas especializadas. LaTeX es... Más »
Antes de empezar, los que no la conozcan, sepan que la barra de vínculos del... Más »
Este tema no debe dejarse nunca de lado; todos conocemos ejemplos de sitios que ahuyentan... Más »
Este tema no debe dejarse nunca de lado; todos conocemos ejemplos de sitios que ahuyentan... Más »
¿Estás seguro de que deseas eliminar este capítulo?