AMD Bulldozer i Jaguar nie będą już zgłaszać obsługi RdRand w Linuksie

Strona główna Aktualności

O autorze

Ciąg dalszy historii związanej z wadliwym działaniem generatora liczb losowych, RdRand, w procesorach AMD. Podczas gdy w przypadku najnowszych układów Zen 2 czerwoni walczą z problemem kolejnymi BIOS-ami, starsze czipy mogą zachowywać się nieprzewidywalnie. Dlatego podjęto decyzję o całkowitym porzuceniu RdRand w kernelu Linuksa.

Poprawkę opublikował Thomas Lendacky, inżynier oprogramowania AMD. Prawdopodobnie wejdzie do gałęzi Linux 5.4. Efektywnie niniejszy patch sprawia, że układy z rodzin 15h i 16h, a więc Bulldozer i Jaguar, mają wyczyszczony bit świadczący o obsłudze RdRand. Innymi słowy: Oprogramowanie nie powinno korzystać już z generatora liczb losowych, jako że nie jest w stanie wykryć jego obecności. W efekcie, przynajmniej w teorii, nie dojdzie do żadnej awarii z tym związanej.

RdRand można aktywować wyłącznie opcjonalnie, przez parametr o wyjątkowo wymownej nazwie force_rdrand. Jest to oczywiście rozwiązanie dla tych, którzy mają pewność, że producent posiadanej płyty głównej dostarcza odpowiedni BIOS. Reszta nie musi się martwić.

Przypomnijmy, chodzi o wrodzoną przypadłość większości współczesnych czipów AMD, polegającą na zwracaniu przez generator liczb losowych stałej wartości -1, pomimo zgłoszenia sukcesu przez flagę przeniesienia. W takim wypadku znaczna część oprogramowania korzystającego z RdRand, z menedżerem systemd na czele, nie chce działać w sposób prawidłowy.

Albo w warstwie programowej, albo w BIOS-ie musi zostać nałożony odpowiedni filtr, wycinający stałą -1 na wyjściu. Tymczasem z łatkami software'u różnie bywa. Zresztą, podobnie jak ze starszymi płytami z socketem AM3 lub AM1, które przez wielu producentów zostały literalnie porzucone. Summa summarum blokada w kernelu wydaje się rozsądnym rozwiązaniem.

© dobreprogramy
s