Pengarang telah mengembangkan floss, sebuah kernel sistem operasi AArch64 yang menargetkan QEMU dan papan Raspberry Pi. Pengujian pada hardware nyata mengungkapkan masalah yang tidak terdeteksi oleh emulasi QEMU. Pos ini menjelaskan penerapan spin lock menggunakan instruksi load exclusive (ldaxr) dan store exclusive (stxr) untuk eksklusivitas saling antara inti CPU.
Kunci menggunakan kata 32-bit di mana 0 berarti terbuka dan 1 berarti terkunci. Instruksi ldaxr mencakup semantik akuisisi untuk mencegah pengurutan ulang memori, sementara stlr (store-release) dalam pembukaan kunci memastikan semantik rilis. Implementasi ini melindungi dari campuran keluaran inti, memastikan hanya satu inti yang mencetak sekaligus.
Namun, hardware nyata kadang-kala menyebabkan pengecualian selama operasi load exclusive yang tidak diemulasi oleh QEMU. Pengarang memvalidasi keebenaran melalui pengujian, dengan mencatat bahwa spin lock dasar tidak adil dan memiliki kinerja buruk karena busy-waiting, menyarankan pekerjaan masa depan menggunakan wfe/sev untuk menunggu yang efisien energi.
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing