
Oprava kritickej chyby v procesoroch Intelu spôsobí ich spomalenie
Základná chyba v návrhu procesorov Intelu spôsobuje, že spracovávaný kód sa môže dostať do adresného priestoru vyhradeného pre jadro systému. Priestory pre používateľa aj kernel sú totiž mapované spoločne a prístup k nim sa riadi pomocou privilégií.
Chyba je prítomná vo všetkých procesoroch Intelu vyrobených v poslednom desaťročí. Umožňuje bežným používateľským programom rozpoznať do určitej miery rozloženie alebo obsah chránených oblastí pamäte jadra. Oprava spočíva v úplnom oddelení pamäte jadra od používateľských procesov pomocou KPTI (Kernel Page Table Isolation).
Keď v súčasnosti bežiaci program musí vykonať nejakú úlohu, napríklad zapisovať do súboru alebo otvoriť sieťové pripojenie, musí dočasne odovzdať riadenie procesora jadru, aby sa úloha realizovala. Aby bol prechod z používateľského režimu do režimu jadra a návrat do používateľského režimu čo najrýchlejší a najúčinnejší, jadro je prítomné v adresných priestoroch virtuálnej pamäte všetkých procesov, hoci je neviditeľné pre tieto programy.
Keď je potrebné jadro, program robí systémové volanie, procesor sa prepne do režimu jadra a vstúpi do jadra. Po vykonaní je procesor vyzvaný, aby prepol späť do používateľského režimu a opätovne spustil proces. V používateľskom režime kód a údaje jadra zostávajú mimo dohľadu, ale sú prezentované v tabuľkách stránok procesu.
Zavedenie KPTI presunie jadro do úplne samostatného adresného priestoru, takže nebude len neviditeľné pre bežiaci proces, ani tam vôbec nebude. Takéto oddelenie je však pomerne nákladné a náročné na čas, pretože pri každom systémovom volaní a prerušení treba nepretržite prechádzať medzi dvoma samostatnými adresnými priestormi.
Takéto prepínanie kontextu sa nemôže uskutočniť okamžite, procesor totiž musí vyhodiť údaje uložené vo vyrovnávacej pamäti a opätovne načítať informácie z pamäte, čo spomaľuje počítač.
Programátori sa teraz pokúšajú prepracovať virtuálny pamäťový systém linuxového jadra a očakáva sa, že Microsoft v rámci nadchádzajúceho Patch Tuesday verejne predstaví potrebné zmeny v OS Windows.
Tieto aktualizácie pre Linux i Windows však budú mať dosah na výkonnosť produktov Intelu. Účinky sa zatiaľ testujú, no v závislosti od vykonávanej úlohy a modelu procesora sa úbytok výkonu môže pohybovať v rozmedzí 5 až 30%. Podľa vykonaných testov by dosah na bežných používateľov nemal byť významný. Výraznejšie rozdiely zistil web Computerbase pri práci s archívmi a pri práci s SSD (prenosové rýchlosti klesli o niekoľko desiatok MB/s).
Aktualizovať však bude treba aj ďalšie operačné systémy, napríklad 64-bitový Mac OS. Chyba je v hardvéri Intel x86-64 a zdá sa, že aktualizácia mikrokódu ju nemôže riešiť. Musí byť opravená v softvéri na úrovni OS, prípadne si musíte kúpiť nový procesor bez chyby v návrhu.
Ovplyvnení však budú veľkí poskytovatelia služieb cloud computingu, napr. Microsoft Azure, Amazon EC2 či Google Compute Engine.
Zdroj: theregister.co.uk.
Zobrazit Galériu