Ядро под задачу
Ядро 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 позволяет легко накладывать свои патчи и выбирать планировщики и настройки, ориентированные на игры.
- Собирая ядро сами, мы обновляем его только когда новая версия действительно приносит пользу и после проверки на железе.
Источники
- linux-tkg (Frogging-Family)
- bc250-40cu-unlock (duggasco)
- Параметры драйвера amdgpu
- bc250.info — заметки о ядре и командной строке
