Изменение настроек ядра Linux 6.12 привело к проблемам c zRAM в некоторых дистрибутивах

Пользователи систем, использующих механизм zRAM для сжатого хранения раздела подкачки в памяти, столкнулись с проблемой, приводящей к сбою загрузки после обновления ядра Linux до версии 6.12. Проблема проявляется в Gentoo, Void и других дистрибутивах, поддерживающих zRAM и предлагающих пакеты с новыми версиями ядра.

Причиной сбоя стало включённое в ядро 6.12 изменение, добавляющее возможность настойки алгоритмов сжатия во время работы. Попутно в Kconfig была измена логика выбора доступных алгоритмов сжатия на этапе сборки ядра. Изменение привело к проблемам в дистрибутивах, полагавшихся на настройки по умолчанию и по отдельности не включивших все доступные алгоритмы zRAM в конфигурации Kconfig для ядра 6.12.

После обновления до ядра 6.12 в подобных дистрибутивах доступным для выбора остался только выставленный по умолчанию базовый алгоритм сжатия, а не все поддерживаемые алгоритмы.
Соответственно, при попытке включения в zRAM алгоритмов, не совпадающих с алгоритмом по умолчанию, возникал сбой при загрузке. Например, при выборе алгоритма lz4 при загрузке возникала ошибка «zramctl: /dev/zram0: failed to set algorithm: Invalid argument», так как из алгоритмов оставалась только поддержка lzo, вместо ранее поддерживаемых lzo, lz4, lz4hc, 842 и zstd.

Проблема решается включением в Kconfig каждого бэкенда сжатия по отдельности (настройки CONFIG_ZRAM_BACKEND_* были добавлены в ядре 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"

Источник: http://www.opennet.ru/opennews/art.shtml?num=62451