Procesory | Intel

Intel má velký problém s procesory, oprava kritické chyby povede k jejich zpomalení

  • Intelu hrozí velký průšvih, procesory obsahují kritickou chybu na hardwarové úrovni
  • Umožňuje přístup k paměťovému prostoru pro jádro systému
  • Softwarová oprava bude znamenat snížení výkonu

Aktualizováno:

O zpomalování procesorů se v posledních týdnech hovoří především v souvislosti s Applem a jeho iPhony. Jenže nyní to vypadá, že tahle minikauza bude brzy zapomenuta, mnohem větší průšvih totiž může postihnout Intel a většinu z jeho procesorů několika posledních generací. Za vše může chyba při práci s paměťovým systémem.

Nejdřív zkrácená verze pro ty, které nemají zájem o technické pozadí. Web The Register přinesl informace o chybě na hardwarové úrovni, která způsobuje, že se zpracovávaný kód může dostat do adresního prostoru, který je vyhrazen čistě pro jádro systému. Nyní jsou oba prostory, jak uživatelský tak pro kernel mapovány společně a přístup k nim je řízen pomocí privilegií.

Díky tomu je zrychlena práce s pamětí při přepínání mezi operacemi na uživatelské a systémové úrovni. Oprava chyby ale bude vyžadovat jejich oddělení v jádře systému, což sníží celkový výkon. U operací, které se týkají především serverového použití to může být pokles až o třetinu výkonu.

Vzhledem k tomu, že je většina informací pod embargem a zveřejněné opravě v linuxovém jádře chybí jakákoliv dokumentace, nemáme podrobné informace o samotné chybě v procesorech a stejně tak nevíme, zda se nebude týkat i AMD. Podle dosavadních indicií by se však mělo jednat pouze o procesory Intelu. Konkrétně se hovoří o modelech Core 6., 7. a 8. generace, procesorech Xeon v5 a v6, Xeonech-W a nižších řadách Apollo Lake (Atom, Pentium).

Linux, Windows i macOS

The Register vycházel primárně z reportu na LWM.net, který informuje o zavedení KPTI (kernel page-table isolation) do jádra Linuxu na konci října. Jde právě o izolaci obou adresních prostorů pro práci se systémovým a uživatelským kódem.

Aktuálně jsou oba v paměti namapovány společně a asociativní buffer TLB tak může uchovávat informace o přiřazení virtuální paměti k fyzické adrese pro oba prostory. Pokud se tedy vykonává uživatelský kód, CPU má v TLB ihned k dispozici adresování na fyzickou paměť a stejně tak když přijde na řadu kód na úrovni systémového jádra.

Jenže hardwarová chyba v procesorech vyžaduje opravu zavedením již zmíněné izolace. V takovém případě je třeba buffer TLB vyprázdnit při každé změně paměťového prostoru. Pokud CPU pracuje s programem, je v TLB uloženo adresování uživatelské části paměti, jestliže ale začne pracovat třeba s diskem, což si vyžádá volání na systémové úrovni, bude potřeba TLB vyprázdnit.

Izolace adresních prostorů bude zavedena do všech systémů. V Linuxu již je a do jádra Windows se dostane velmi brzy. V případě, že využíváte testovací program Insider Preview, pak je již dostupná v aktualizaci s označením 17063. Stejně tak oprava zamíří do macOS.

Až o 30 % nižší výkon

Na webu se začaly objevovat první testy, které demonstrují dopad zavedení KPTI při konkrétním využití. Pro běžné koncové uživatele se toho příliš nezmění – testy na webu Phoronix ukazují, že i s opatchovaným systémem je výkon ve hrách totožný.

obarázek 098.pngobrászek 099.png
Na herní výkon nemá zavedení KPTI vliv (zdroj: Phoronix)

Na Computerbase potom otestovali procesor Core i7-7700K při běžných scénářích, které vídáme v obvyklých srovnávacích testech. Výraznější rozdíl byl zaznamenán pouze při práci s archivy. Stále však jde o nízké jednotky procent.

obrázek 0988.png
Testy Core i7-7700K před a po aktualizaci na verzi 17063 s aktivní KPTI. Nepatrný rozdíl je pouze při práci s archivy (zdroj: Computerbase)

Zároveň si na Computebase všimli většího rozdílu při práci s SSD, kdy s novou aktualizací klesnuly přenosové rychlosti o několik desítek MB/s. Tady ale není možné určit, zda za propad opravdu může zavedení KPTI nebo jiná změna v systému.

1-1080.3143185721.png2-1080.3645078672.png
Takto se liší přenosové rychlosti úložiště SSD po instalaci aktualizace (zdroj: Computerbase)

Problém značných rozměrů by ale mohl nastat v případě serverového použití a to především na straně obřích poskytovatelů jako je Microsoft, Google nebo Amazon. Právě při práci s databázemi nebo virtualizaci jsou zaznamenávány nejvyšší propady ve výkonu.

Jeden ze značně znepokojujících reportů vydali vývojáři databázového systému PostgreSQL. Ti otestovali běh databáze na procesoru Intel Core i7-6820HQ. Při aktivní izolaci adresního prostoru byl výkon nižší v nejlepším případě o 17 procent. Při nejhorším scénáři potom došlo k propadu výkonu dokonce o 23 procent. Pokud se takové výsledky potvrdí po nasazení do reálného provozu, pro většinu poskytovatelů cloudových služeb to bude znamenat velké problémy. A to nejen technické, mohou si vyžádat značné investice do hardwaru.

Velké záplatování

Že se nejedná o výstřel do prázdna, je patrné nejen z dosavadního embarga prakticky na jakékoliv informace, ale i z reakce velkých poskytovatelů. Amazon rozeslal zákazníkům využívající virtualizační služby EC2 e-mail o tom, že v noci z pátku na sobotu bude probíhat údržba, na kterou si vyhradil čtyrhodinové okno, během něhož dojde k restartování služeb a virtuální instance nebudou dostupné.

Podobný zásah potom čeká i uživatele služeb Microsoft Azure. V tomto případě bude patchování a restartování strojů probíhat od půlnoci 10. ledna.

DRCw6q2XkAAVkRt.jpgDSe99PPXkAIXaPy.jpg
Amazon na chvíli vypne svoje virtualizační služby ještě tento týden, u Microsftu bude údržba probíhat příští středu

Tady je potřeba zdůraznit, že údržba tohoto rozsahu je naprosto výjimečná. Jen v ojedinělých případech je potřeba restartování, které způsobí nedostupnost cloudových služeb, tady virtualizačních.

Výhra pro AMD. Snad…

Na zprávy o problémech celkem logicky muselo zareagovat AMD a prvním výstupem se stal publikovaný komentář jednoho z linuxových vývojářů z AMD. Podle něj žádný z procesorů společnosti touto chybou netrpí a KPTI tak není potřeba zavádět.

Je tedy pravděpodobné, že na procesory AMD se nebude opatření v podobě izolace adresních prostorů vztahovat. Pokud by totiž vývojáři systému tuto výjimku v kernelu nezavedli, na AMD by KTPI dopadlo mnohem výrazněji než na samotný Intel. To ukazuje test na webu Grsecurity, kde serverový procesor Epyc po aktivaci KTPI přišel o 51 procent výkonu.

obrázek 098.pngobrázek 099.png
Nahoře výkon procesoru Epyc bez KPTI, dole po jeho aktivaci. Rozdíl až 51 % (zdroj: Grsecurity)

Žádného oficiálního vyjádření od Intelu jsme se zatím nedočkali, jistě však bude muset přijít. A to i kvůli investorům. Cena akcií AMD rychle vyskočila o 5 %, naopak u Intelu můžeme sledovat opačný trend. S úsměvem rovněž můžeme číst zprávu z před dvou týdnů o tom, že se CEO Intelu Brian Krzanich zbavil všech akcií, které mohl prodat. Utržil za ně 11 milionů dolarů a ponechal si pouze minimum, které musí na své pozici držet. Vypadá to na zajímavý start roku 2018.

Diskuze (112) Další článek: Apple měl „chybu“ na chytré střeše moderní prodejny, problém s ledem ale vyřešilo přeprogramování

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,