Система

Ядро под задачу

Ядро linux-tkg с патчами для BC-250, параметры загрузки и ядра, которых стоит избегать.

Сердце всех оптимизаций SkillFishOS — собственноручно собранное ядро для BC-250, основанное на linux-tkg: это рецепт сборки от Frogging Family, накладывающий патчи, нацеленные на производительность и игры.

Версия и патчи

Ядро SkillFishOS имеет версию 7.2.0-skillfishos (серии 7.0 и 7.1 сняты с поддержки). Поверх обычных патчей linux-tkg в него входят:

  • патч снятия ограничения частоты для BC-250 (диапазон 350–2230 МГц);
  • патч 40 CU, включающий все вычислительные блоки видеоядра;
  • собственный патч RDSEED-quiet, который заглушает шумное сообщение ядра на этом железе.

Пакет ядра (образ и заголовки) публикуется как выпуск и закреплён (apt-mark hold), чтобы обновление Debian не подменило его неподходящим ядром. Оно же выбрано в GRUB по умолчанию.

Параметры загрузки (cmdline)

Командная строка ядра настроена так, и у каждого параметра есть точная причина:

mitigations=off
split_lock_detect=off
ttm.pages_limit=1572864
ttm.page_pool_size=1572864
Параметр Что делает
mitigations=off отключает защиты от Spectre и Meltdown ради максимальной производительности (приемлемый выбор для домашней консоли)
ttm.pages_limit / ttm.page_pool_size потолок GTT, считаемый страницами по 4 КиБ: 1572864 = 6 ГиБ, так что Vulkan видит около 13 ГиБ, считая видеопамять и GTT (полезно для ИИ). Раньше это был amdgpu.gttsize, объявленный устаревшим с ядра 7.x: если заданы оба, драйвер слушается этого и сообщает об этом при каждой загрузке
split_lock_detect=off отключает обнаружение split lock, которое иначе придушивает процессы, делающие невыровненные атомарные обращения (а игры и эмуляторы их делают)

А как же DisplayPort? У BC-250 сломан HPD (см. железо), но SkillFishOS не использует параметр video=DP-1:e: служба skillfish-dp-hotswap следит за EDID и снова включает выход, когда монитор возвращается. Это покрывает и случай, когда монитор включают позже платы, — чего один параметр не умеет.

Вычислительные блоки на ходу. SkillFishOS больше не использует параметр amdgpu.bc250_cc_write_mode=3 (он прибивал 40 CU при загрузке и запрещал менять их на ходу). Теперь система загружается с драйверным минимумом (24 CU), а служба при старте доводит до 40 на ходу; менять их можно без перезагрузки из Tuner. См. GPU и разгон.

Ядра, которых стоит избегать

Не всякое свежее ядро хорошо работает на этом железе. В частности, серии 6.15.0–6.15.6 и 6.17.8–6.17.10 известны как проблемные, и их лучше обходить стороной. SkillFishOS поставляет своё проверенное ядро именно затем, чтобы избежать таких откатов назад — см. Обновления.

IOMMU

Как сказано на странице про железо, IOMMU на BC-250 включать нельзя никогда: он нестабилен. Ядро всегда загружается с отключённым IOMMU.

Почему своё ядро, а не XanMod и не штатное

  • В штатном ядре Debian нет патчей для BC-250 (снятие ограничения частоты, 40 CU), и оно следует за откатами, описанными выше.
  • linux-tkg позволяет легко накладывать свои патчи и выбирать планировщики и настройки, ориентированные на игры.
  • Собирая ядро сами, мы обновляем его только когда новая версия действительно приносит пользу и после проверки на железе.

Источники