Użytkownicy systemów korzystających z mechanizmu zRAM do skompresowanego przechowywania partycji swap w pamięci napotkali problem prowadzący do awarii uruchamiania po aktualizacji jądra Linux do wersji 6.12. Problem występuje w Gentoo, Void i innych dystrybucjach wspierających zRAM oraz oferujących pakiety z nowymi wersjami jądra.
Przyczyną awarii było wprowadzenie w jądrze 6.12 zmiany, która dodaje możliwość dostosowywania algorytmów kompresji w czasie pracy. Przy okazji w Kconfig zmodyfikowano logikę wyboru dostępnych algorytmów kompresji na etapie kompilacji jądra. Zmiana ta prowadziła do problemów w dystrybucjach, które polegały na ustawieniach domyślnych i nie aktywowały wszystkich dostępnych algorytmów zRAM w konfiguracji Kconfig dla jądra 6.12.
Po aktualizacji do jądra 6.12 w podobnych dystrybucjach dostępny do wyboru pozostał tylko ustawiony domyślnie podstawowy algorytm kompresji, a nie wszystkie obsługiwane algorytmy. W związku z tym, przy próbie włączenia w zRAM algorytmów, które nie były zgodne z algorytmem domyślnym, występowała awaria podczas uruchamiania. Na przykład, przy wyborze algorytmu lz4 podczas uruchamiania pojawiała się błąd «zramctl: /dev/zram0: failed to set algorithm: Invalid argument», ponieważ z algorytmów pozostawała tylko obsługa lzo, zamiast wcześniej obsługiwanych lzo, lz4, lz4hc, 842 i zstd.
Problem można rozwiązać, włączając w Kconfig każdy backend kompresji z osobna (ustawienia CONFIG_ZRAM_BACKEND_* zostały dodane w jądrze 6.12): CONFIG_ZRAM_BACKEND_LZ4=y CONFIG_ZRAM_BACKEND_LZ4HC=y CONFIG_ZRAM_BACKEND_ZSTD=y CONFIG_ZRAM_BACKEND_842=y CONFIG_ZRAM_DEF_COMP_LZO=y CONFIG_ZRAM_DEF_COMP="lzo".
Źródło: opennet.ru
