Lines Matching refs:para

32 pretende ser una guía para usar las diversas barreras de memoria
44 (1) especificar la funcionalidad mínima en la que se puede confiar para
50 requisito mínimo para cualquier barrera en particular, pero si la
54 para alguna arquitectura porque por la forma en que funcione dicha
245 emitirán en orden, con respeto a sí mismo. Esto significa que para:
264 parecerán ser ordenados dentro de esa CPU. Esto significa que para:
273 Y para:
293 en el orden dado. Esto significa que para:
307 fusionarse o ser descartados. Esto significa que para:
317 Y para:
330 compiladores a menudo generan código para modificarlos usando
332 utilizar campos de bits para sincronizar algoritmos paralelos.
339 pueden causar una actualización a una campo para corromper el valor de
346 no hay restricciones para "char", alineación de dos bytes para "short",
347 alineación de cuatro bytes para "int", y alineación de cuatro u ocho
348 bytes para "long", en sistemas de 32 y 64 bits, respectivamente. Tenga
380 problema para la interacción CPU-CPU y para la E/S ("I/O"). Lo que se
381 requiere es alguna forma de intervenir para instruir al compilador y al
382 CPU para restringir el orden.
389 sistema pueden usar una variedad de trucos para mejorar el rendimiento,
393 utilizan para anular o suprimir estos trucos, permitiendo que el código
430 load), una barrera de dependencia de dirección sería necesaria para
442 la CPU en cuestión garantiza que para cualquier carga que la preceda,
449 para ver los diagramas mostrando las restricciones de orden.
453 dirección para la segunda carga depende de la primera carga, pero la
457 subsección "Dependencias de control" para más información.
463 [!] Desde el kernel v5.9, se eliminó la API del kernel para barreras
464 de memoria de direcciones explícitas. Hoy en día, las APIs para marcar
537 todos los accesos de todas las secciones críticas anteriores para esa
603 READ_ONCE() para DEC Alpha, lo que significa que las únicas personas que
606 READ_ONCE() por dentro. Para aquellos que lo necesitan, y para aquellos que
612 dirección no son necesarias para situaciones de carga a store.
673 No se requiere una barrera de dependencia de dirección para ordenar
691 para ordenar la lectura en Q con el load en *Q. En otras palabras, este
700 escrituras. Este patrón se puede utilizar para registrar raras condiciones
706 es local para la CPU que lo contiene. Lea la sección sobre "Atomicidad
707 multicopia" para más información.
710 La barrera de dependencia de dirección es muy importante para el sistema
716 Consulte también la subsección sobre "Coherencia de caché" para obtener un
728 (implícita) de dependencia de direcciones para que funcione correctamente.
740 cortocircuitar al intentar predecir el resultado por adelantado, para que
751 provisto para dependencias de control de load-store, como en el siguiente
768 para optimizar el ejemplo original eliminando la declaración "if", como:
833 Aún se requiere el inicial READ_ONCE() para evitar que el compilador toque
893 al compilador para emitir código para una carga dada, no fuerza al
894 compilador para usar los resultados.
906 WRITE_ONCE(c, 1); /* BUG: No hay orden para la lectura de 'a'. */
910 en 'b' con la condición. Desafortunadamente para esta línea de
933 multicopia" para más información.
938 (*) Las dependencias de control pueden ordenar cargas anteriores para
948 smp_store_release() para realizar el store. Tenga en cuenta que -no-
965 para obtener más información al respecto.
977 usted necesita todas las CPU para ver un store dado al mismo tiempo,
1065 Esta secuencia de eventos es finalizado para con el sistema de coherencia
1074 | | : +------+ }----- \ -----> Eventos perceptibles para
1292 perceptible para la CPU 2 antes de que la barrera de lectura se complete de
1318 la carga de B resultó en B == 2. No existe tal garantía para la primera
1327 usando el bus para ningún otra carga, y también en la carga por adelantado,
1335 o simplemente almacenar en caché para su uso posterior.
1427 a saber, que un determinada store se vuelve visible al mismo tiempo para
1429 que todos los stores se vuelven visibles. Sin embargo, el soporte para
1492 requieren barreras generales para garantizar que todas las CPU acurden el
1560 de que las instrucciones de barrera de memoria débiles utilizadas para
1561 implementar smp_load_acquire() y smp_store_release() no son necesarios para
1602 Esta es una barrera general: no hay variantes de barrier() para casos de
1609 (*) Evita que el compilador reordene los accesos tras barrier() para
1640 caché para accesos desde múltiples CPUs a una sola variable.
1650 para un código de un solo subproceso, es casi seguro que no es lo
1657 Use READ_ONCE() para evitar que el compilador le haga esto:
1683 De nuevo, use READ_ONCE() para evitar que el compilador haga esto:
1691 recargan las variables. Hacerlo es perfectamente seguro para código de
1707 Esta transformación es una victoria para un código de un solo
1712 READ_ONCE() para decirle al compilador que no sabe tanto como cree:
1734 algo incorrecto para las variables compartidas. Por ejemplo, suponga
1746 Use WRITE_ONCE() para evitar que el compilador haga este tipo de
1771 una victoria para código de un solo subproceso:
1781 READ_ONCE() para evitar esto de la siguiente manera:
1820 (*) El compilador tiene derecho a inventar stores para una variable,
1839 variable 'b'. Use WRITE_ONCE() para evitar esto de la siguiente
1850 Utilice READ_ONCE() para evitar cargas inventadas.
1859 instrucciones inmediatas de almacenamiento de 16 bits para implementar
1934 lugar para empezar a buscar.
1942 [!] Tenga en cuenta que las barreras de memoria SMP _deben_ usarse para
1946 Las barreras obligatorias no deben usarse para controlar los efectos de
1948 sistemas SMP y UP. Se pueden, sin embargo, usar para controlar los efectos
1975 Estos también se utilizan para funciones atómicas RMW bitop que no
1988 Consulte Documentation/atomic_{t,bitops}.txt para obtener más
1996 Estos son usados con memoria consistente para garantizar el orden de
1997 escrituras o lecturas de memoria compartida accesible tanto para la
1998 CPU como para un dispositivo compatible con DMA.
2002 para indicar si el descriptor pertenece al dispositivo o a la CPU, y
2003 un "doorbell" (timbre, punto de acceso) para avisarle cuando haya
2029 usar writel(), no se necesita un wmb() anterior para garantizar que
2034 Consulte la subsección "Efectos de barrera de E/S del kernel" para
2036 Documentation/core-api/dma-api.rst para más información sobre memoria
2041 Es es para uso con memoria persistente para garantizar que los stores
2042 para los que las modificaciones se escriben en el almacenamiento
2046 usamos pmem_wmb() para garantizar que los stores hayan alcanzado el
2053 lectura existentes son suficientes para garantizar el orden de
2061 puede utilizar para evitar la combinación de accesos a memoria de
2090 "RELEASE" para cada uno de ellos. Todas estas operaciones implican ciertas
2148 RELEASE son para la misma variable de bloqueo, pero solo desde la
2191 anterior para completar, nuevamente desentrañando el punto muerto. Podría
2198 contar con tal situación para lograr realmente nada en absoluto,
2246 utilizados para indicar el evento. Para asegurarse de que estos parezcan
2247 suceder en el orden correcto, las primitivas para comenzar el proceso de ir
2248 a dormir, y las primitivas para iniciar un despertar implican ciertas
2306 de la tarea. En particular, se encuentra entre el STORE para indicar el
2307 evento y el STORE para configurar TASK_RUNNING (hilo ejecutando):
2449 generalmente no va a suponer un problema, ya que para una pieza de código
2473 afectan a ambas CPU deban ordenarse cuidadosamente para evitar un
2495 para saber dónde está el registro del siguiente waiter;
2499 (3) borrar el puntero de la tarea para decirle al waiter que se le ha dado
2581 Consulte Documentation/atomic_t.txt para obtener más información.
2636 interrupciones para garantizar el orden.
2644 específica para cada arquitectura y dispositivo. Por lo tanto, los drivers
2655 periférico al que se accede como un parámetro __iomem *. para punteros
2675 dma_alloc_coherent() serán visibles para un motor ("engine") DMA
2676 cuando la CPU escriba en sus registros de control MMIO, para activar
2684 registro de estado MMIO del motor DMA, para establecer que la
2704 aseguradas para accesos a este tipo de "mappings" (asignaciones).
2714 valor predeterminado para los atributos de E/S.
2718 Los puntos de entrada readsX() y writesX() MMIO están diseñados para
2753 Estos funcionarán adecuadamente para el tipo de acceso que realmente están
2834 hubiera tenido lugar para las otras CPUs, ya que los mecanismos de
2882 Consulte Documentation/core-api/cachetlb.rst para obtener más información
2917 esperarían entonces que la CPU complete la operación de memoria para cada
2926 (*) es más probable que las cargas deban completarse de inmediato para
2937 (*) el orden de los accesos a memoria se puede reorganizar para promover
2940 (*) las cargas y los stores se pueden combinar para mejorar el rendimiento
2989 WRITE_ONCE() hacen lo que sea necesario para evitar esto, por ejemplo, en
3045 para este caso de uso sería posible, pero a menudo no son óptimas.
3049 cuando SMP está habilitado, pero generan código idéntico para sistemas SMP
3055 aspectos, en particular, no controlan los efectos MMIO: para controlar los
3066 Las barreras de memoria se pueden utilizar para implementar almacenamiento
3067 en búfer circular, sin necesidad de un cerrojo para serializar al productor
3072 para más detalles.