On lähes jokapäiväistä löytää mielenkiintoisia Linux-ytimen korjaustiedostoja (ja myös muihin avoimen lähdekoodin projekteihin!) Intelin suurelta avoimen lähdekoodin insinöörien joukolta. Viimeisin tutkani on sallinut Linuxin”intel_idle”-ohjaimen ajaa virtuaalikoneen (VM) vieraiden sisällä.
Äärimmäinen Intel Linux-insinööri Arjan van de Ven on julkaissut joukon korjaustiedostoja, jotka mahdollistavat intel_idle-ohjaintuen virtuaalikoneille. Nämä korjaustiedostot yhdessä tulevien C0.2-tukikorjausten kanssa parantavat virtuaalikoneiden suorituskykyä varsinkin raskaassa I/O-käytössä.
Arjan selitti osoitteessa korjaustiedostot:
intel_idle tarjoaa prosessorin valmiustilat (virran säästämiseksi tyhjäkäynnissä) cpuidle-kehykselle, joka perustuu prosessorikohtaisiin taulukoihin yhdistettynä rajoitettuun laitteistoluetteloon. Tämä cpuidlen ja intel_idlen yhdistelmä tarjoaa dynaamisen toiminnan, jossa virransäästö ja suorituskyky ovat dynaamisesti tasapainossa ja jossa järjestelmässä on joukko yleisiä nuppeja, joiden avulla käyttäjät voivat säätää heuristiikkaa (ja saada tilastoja jne.).
Intel_idle ei kuitenkaan tällä hetkellä tuki VM-vieraiden sisällä, ja linux-ydin palautuu joko ACPI-pohjaiseen lepotilaan (jos hypervisor/virtuaalinen bios tukee sitä) tai vain oletusarvoiseen x86-varauspohjaiseen”hlt”-pohjaiseen idle-menetelmään… joka otettiin käyttöön 1.2-ytimen sarjassa… ja siitä puuttuu kaikki cpuidlen tuoma dynaaminen käyttäytyminen, käyttäjän hallinta ja tilastot.
Vaikka tämä on ilmeisesti toimiva, se ei ole hienoa ja voimme tehdä paremmin käyttäjälle kytkemällä intel_idle cpuidle-kehykseen myös”in a guest”-tapauksessa. Eikä vain ole hyvä käyttäjälle, se ei myöskään ole optimaalinen, ja siitä puuttuu kaksi avainominaisuutta, joita paljas metallikotelo tukee:
1) Mahdollisuus huuhdella TLB:tä erittäin pitkien joutojaksojen aikana, jotta vältetään käyttämättömän vCPU:n kallis (ja korkean viiveen) IPI-herätys myöhemmin, kun käyttämättömällä vCPU:lla aiemmin toiminut prosessi suorittaa munmap-tai vastaavan toiminnon. Korkean viiveen IPI:iden välttäminen auttaa välttämään suorituskyvyn tärinää.
2) Mahdollisuus käyttää uutta Intel C0.2:n joutotilaa kyselyn sijaan erittäin lyhyiden joutojaksojen aikana virran (ja hiilijalanjäljen) säästämiseksiTämä korjaustiedostosarja lisää perustuen toimintaan VM-vieraalla intel_idle-ohjaimelle ja korjaa sitten ensimmäisen näistä puutteista. C0.2-aukko korjataan pienellä lisäkorjauksella, kun C0.2-tuki on yhdistetty erikseen.
Hienoa työtä ja on mielenkiintoista testata, kun C0.2-tukipaikat on saatu myös valmis hyötymään uusimmista Intel Xeon Scalable-palvelimista.