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)