Zstd v jádře dramaticky zrychluje na x86

Sdílet

Zip zips Autor: Depositphotos

Rychlý kompresní algoritmus Zstd se v jádře využívá na několika místech, například pro transparentní kompresi dat Zswap, Zram, SquashFS, EROFS, Btrfs a F2FS. V současnosti se nejprve zjistí, jestli x86 podporuje instrukce BMI2 (od Intel Haswell a AMD Excavator) a pokud ano, použijí se místo generických instrukcí x86.

Problém je, že dotaz na instrukce BMI2 (dvě serializované CPUID instrukce) trvá celkem dlouho a toto se volá v případě SquashFS pro každý  blok. V případě EROFS, Btrfs a F2FS pro platí každou operaci. Usama Arif ve středu navrhl opravu, kdy se přítomnost instrukcí BMI2 zjišťuje jen jednou a pak se používá tato hodnota. Při testu crypto_acomp s bloky 4 kB je komprese rychlejší o 18 % a dekomprese o 71 %. To je extrémní případ, protože jde o virtualizaci nad KVM a každý CPUID je v tomto případě velmi dlouhý.

(zdroj: phoronix)

Našli jste v článku chybu?

Autor zprávičky

První linux nainstaloval kolem roku 1994 a u něj zůstal. Později vystudoval fyziku a získal doktorát.