Setelah dua tahun membicarakan Intel FRED sebagai Pengembalian Fleksibel dan Pengiriman Peristiwa untuk merombak cara transisi dilakukan antara tingkat hak istimewa (cincin CPU), kode dukungan akhirnya dalam kondisi yang baik untuk digabungkan sekarang dengan kernel Linux 6.9.
Intel FRED dirancang untuk memungkinkan transisi latensi yang lebih rendah antara tingkat hak istimewa dan untuk penggunaan perangkat lunak yang lebih kuat. Sebagai bagian dari Intel FRED juga terdapat instruksi LKGS yang secara terpisah telah dimasukkan ke dalam kernel Linux dan kompiler sumber terbuka.
Intel FRED menggantikan pengiriman peristiwa IDT dan sebuah langkah maju yang besar dengan prosesor Intel masa depan yang mendukung FRED. Kami mengharapkan untuk melihat kode ini untuk Linux 6.9 dan memang dikirimkan untuk jendela penggabungan ini. Linus Torvalds hari ini melanjutkan dan menggabungkan kode Intel FRED tanpa keberatan.
Penggabungan ini merangkum manfaat Intel FRED sebagai:
FRED adalah pengganti pengiriman acara IDT di x86 dan mengatasi sebagian besar masalah teknis yang dihadapi IDT:
1) Register penyebab pengecualian seperti CR2 perlu disimpan secara manual dalam skenario pengecualian bersarang.
2) Peralihan tumpukan interupsi perangkat keras kurang optimal untuk pengecualian bersarang karena mekanisme tumpukan interupsi memundurkan tumpukan pada setiap entri yang memerlukan upaya besar-besaran dalam entri kode #NMI tingkat rendah untuk menangani hal ini.
3) Tidak ada perbedaan perangkat keras antara entri dari kernel atau dari pengguna yang membuat pembuatan konteks kernel menjadi lebih kompleks daripada yang seharusnya, terutama untuk pengecualian yang bersarang tanpa syarat seperti NMI.
4) Pengumpulan NMI yang disebabkan oleh IRET yang mengaktifkan kembali NMI tanpa syarat, yang merupakan masalah ketika kinerja NMI mengalami kesalahan saat mengumpulkan jejak tumpukan.
5) Pemulihan sebagian ESP saat kembali ke segmen 16-bit
6) Keterbatasan ruang vektor yang dapat menyebabkan kelelahan vektor pada sistem yang besar.
7) Ketidakmampuan membedakan sumber-sumber NMI
FRED mengatasi kekurangan ini dengan:
1) Bingkai tumpukan pengecualian yang diperluas yang digunakan CPU untuk menyimpan register penyebab pengecualian. Hal ini memastikan bahwa informasi meta untuk setiap pengecualian disimpan di tumpukan dan menghindari kerumitan ekstra dalam menyimpannya dalam perangkat lunak.
2) Peralihan tumpukan interupsi perangkat keras tidak dapat diputar ulang jika pengecualian bersarang menggunakan tumpukan interupsi saat ini.
3) Titik masuk untuk kernel dan konteks pengguna terpisah dan penanganan GS BASE yang diperlukan untuk menetapkan konteks kernel untuk akses variabel per CPU dilakukan di perangkat keras.
4) NMI sekarang dilindungi sarangnya. Mereka hanya diaktifkan kembali setelah kembali dari NMI.
5) FRED menjamin pemulihan penuh ESP
6) FRED tidak membatasi ruang vektor karena menggunakan titik masuk pusat untuk kernel dan ruang pengguna dan CPU menyimpan jenis entri (pengecualian, jebakan, interupsi, syscall) pada tumpukan entri bersama dengan nomor vektor . Kode entri harus mendemultipleks informasi ini, tetapi ini menghilangkan batasan ruang vektor.
Implementasi perangkat keras pertama masih memiliki ruang vektor terbatas saat ini karena menghilangkan batasan ini memerlukan perubahan lebih lanjut pada APIC lokal.
7) FRED menyimpan nomor vektor dan informasi meta pada tumpukan yang memungkinkan memiliki lebih dari satu vektor NMI di perangkat keras masa depan ketika perubahan APIC lokal yang diperlukan sudah ada. Patch pengaktifan Linux menyebutkan dukungan Intel FRED ini sejauh ini telah diuji pada simulator. Oleh karena itu, tampaknya FRED tidak akan didukung dengan prosesor Intel Xeon Granite Rapids / Sierra Forest atau Arrow Lake / Lunar Lake yang akan datang, tetapi seperti yang terjadi setelah prosesor yang akan datang ini. Bagaimanapun, sangat menyenangkan melihat fitur baru Intel ini diaktifkan dalam kernel Linux lebih awal seperti yang biasa terjadi pada fitur-fitur utama mereka.
Itulah berita seputar Intel FRED Digabung Untuk Linux 6.9 Sebagai Peningkatan Penting Dengan CPU Masa Depan, semoga bermanfaat. Disadur dari Phoronix.com.