Hampir setiap hari menemukan tambalan kernel Linux yang menarik (dan untuk proyek sumber terbuka lainnya juga!) Oleh komplotan besar insinyur sumber terbuka Intel. Persimpangan terbaru radar saya adalah untuk mengizinkan driver”intel_idle”Linux untuk berjalan di dalam tamu mesin virtual (VM).
Insinyur Intel Linux terkemuka Arjan van de Ven telah memposting satu set tambalan untuk memungkinkan dukungan driver intel_idle untuk mesin virtual. Tambalan ini dipasangkan dengan tambalan dukungan C0.2 yang akan datang akan memberikan peningkatan kinerja yang bagus untuk VM, terutama di sekitar penggunaan I/O yang berat dan bertahan lama.
Arjan menjelaskan dengan tambalan:
intel_idle menyediakan status CPU Idle (untuk menghemat daya saat idle) ke kerangka kerja cpuidle, berdasarkan tabel per-cpu yang dikombinasikan dengan enumerasi perangkat keras terbatas. Kombinasi cpuidle dan intel_idle ini memberikan perilaku dinamis di mana penghematan daya dan dampak kinerja seimbang secara dinamis dan di mana satu set kenop umum disediakan di sysfs bagi pengguna untuk menyetel heuristik (dan mendapatkan statistik, dll.)
Namun, intel_idle saat ini tidak mendukung berjalan di dalam tamu VM, dan kernel linux kembali ke idle berbasis ACPI (jika didukung oleh hypervisor/virtual bios) atau hanya metode idle berbasis x86 fallback”hlt”default… yang diperkenalkan pada seri kernel 1.2… dan tidak memiliki semua perilaku dinamis, kontrol pengguna, dan statistik yang dibawa oleh cpuidle.
Meskipun ini jelas berfungsi, ini tidak bagus dan kami dapat melakukan yang lebih baik untuk pengguna dengan menghubungkan intel_idle ke dalam kerangka kerja cpuidle juga untuk kasus”tamu”. Dan tidak hanya tidak bagus untuk pengguna, itu juga tidak optimal dan tidak memiliki dua kemampuan utama yang didukung oleh casing logam polos:
1) Kemampuan untuk menyiram TLB untuk periode diam yang sangat lama, untuk menghindari bangun IPI yang mahal (dan latensi tinggi) nanti, dari vCPU yang menganggur saat proses yang dulu berjalan di vCPU yang menganggur melakukan munmap atau operasi serupa. Menghindari IPI latensi tinggi membantu menghindari gangguan performa.
2) Kemampuan untuk menggunakan status idle Intel C0.2 baru alih-alih polling untuk periode idle durasi sangat singkat untuk menghemat daya (dan jejak karbon)Seri tambalan ini menambahkan dukungan dasar untuk dijalankan di tamu VM ke driver intel_idle, lalu mengatasi kekurangan pertama ini. Kesenjangan C0.2 akan diperbaiki dengan tambalan tambahan kecil setelah dukungan C0.2 digabungkan secara terpisah.
Kerja bagus dan akan menarik untuk diuji setelah tambalan dukungan C0.2 selesai juga siap memanfaatkan server Intel Xeon Scalable terbaru.