HeadlinesBriefing HeadlinesBriefing.com

Desafíos de la Implementación de Bloqueo de Giro AArch64 en Hardware Real

Hacker News •
×

El autor ha estado desarrollando floss, un kernel de sistema operativo AArch64 que se dirige a QEMU y placas Raspberry Pi. Las pruebas en hardware real revelaron problemas no detectados por la emulación de QEMU. Esta publicación detalla la implementación de un bloqueo de giro utilizando instrucciones de carga exclusiva (ldaxr) y almacenamiento exclusivo (stxr) para exclusión mutua entre núcleos de CPU.

El bloqueo utiliza una palabra de 32 bits donde 0 significa desbloqueado y 1 significa bloqueado. La instrucción ldaxr incluye semántica de adquisición para evitar reordenamiento de memoria, mientras que stlr (almacenamiento-liberación) en desbloqueo asegura semántica de liberación. La implementación protege contra la intercalación de salida de núcleos, asegurando que solo un núcleo imprima a la vez.

Sin embargo, el hardware real ocasionalmente causa excepciones durante las operaciones de carga exclusiva que QEMU no emula. El autor valida la corrección mediante pruebas, señalando que el bloqueo de giro básico carece de equidad y tiene un rendimiento pobre debido a la espera ocupada, sugiriendo trabajo futuro en wfe/sev para espera eficiente en energía.

Fuente: Hacker News · Resumido por HeadlinesBriefing