Hlavní navigace

Problémy s vyrovnávací pamětí u telefonů Samsung

Jan Fikar

Samsung nemá jen problém s hořící baterií u Note 7, ale i s náhodně padajícími aplikacemi na Note 7, Galaxy S7 a S7 Edge, které mají procesor Exynos 8890. Nedávno se podařilo odhalit jádro problému, jde o různé cache_line_size u big.LITTLE architektury. Velká jádra M1 je mají 128, kdežto malá A53s jen 64. Přitom například GCC předpokládá cache_line_size stejnou u všech jader a zjišťuje ji jen jednou. Pokud je tedy aplikace přesunuta z velkého na malé jádro __clear_cache nevymaže úplně instrukční vyrovnávací paměť a může tedy dojít k pádu aplikace.

LLVM a V8 JavaScript touto chybou tolik netrpí, protože zjišťují cache_line_size před každým krokem čištění vyrovnávací paměti, nicméně stále může být aplikace v nevhodný okamžik přesunuta a problém nastane. Mono a patch pro kernel se snaží najít nejmenší cache_line_size mezi jádry a používat stále tuto hodnotu.

(zdroj: theregister)

Našli jste v článku chybu?