Skip to content

diagnose: «PSI недоступен (старое ядро)» на ядре 6.18 — на деле CONFIG_PSI_DEFAULT_DISABLED, сенсор давления мёртв на всём флоте #37

Closed

Description

@jestivald

Симптом

На всём флоте (11 нод + панель, ядро 6.18.47-x64v3-xanmod1, поставлено самим тулкитом) блок «давление» в na-diagnose не работает и объясняет это неверно:

== Здоровье: давление, диск, инциденты ==
[*] PSI недоступен (старое ядро)

Ядро не старое — оно новее того, где PSI появился (4.20). Сенсор молчит на 100% боксов, то есть заявленная диагностика давления по CPU/памяти/IO не даёт ничего ни на одной ноде, и никто этого не замечает, потому что строка выглядит как штатное «на этом железе не поддерживается».

Причина

XanMod (как и стоковые ядра Debian) собран с CONFIG_PSI_DEFAULT_DISABLED=y: PSI есть, но выключен до тех пор, пока в командной строке ядра нет psi=1.

$ uname -r
6.18.47-x64v3-xanmod1
$ grep CONFIG_PSI /boot/config-$(uname -r)
CONFIG_PSI=y
CONFIG_PSI_DEFAULT_DISABLED=y
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-6.18.47-x64v3-xanmod1 root=PARTUUID=… ro console=tty0 …
$ ls /proc/pressure/
ls: cannot access '/proc/pressure/': No such file or directory

scripts/diagnose.sh:711 проверяет только [[ -r /proc/pressure/cpu ]] и любой промах трактует как «старое ядро».

Починка

Различать три состояния вместо двух — и в случае «выключено» подсказывать, что делать:

-else info "PSI недоступен (старое ядро)"; fi
+elif grep -q '^CONFIG_PSI=y' "/boot/config-$(uname -r)" 2>/dev/null \
+     && ! grep -qw 'psi=1' /proc/cmdline 2>/dev/null; then
+    info "PSI выключен в сборке ядра (CONFIG_PSI_DEFAULT_DISABLED=y) — включается 'psi=1' в GRUB_CMDLINE_LINUX_DEFAULT + update-grub + ребут"
+else
+    info "PSI недоступен (ядро без CONFIG_PSI)"
+fi

Логичное продолжение — раз тулкит сам ставит XanMod и сам правит GRUB, optimize мог бы дописывать psi=1 в GRUB_CMDLINE_LINUX_DEFAULT (ребут после установки ядра всё равно требуется, отдельного простоя не появится). Тогда сенсор давления начнёт приносить пользу вместо строки-заглушки. Если делать — стоит выделить это флагом (ENABLE_PSI=1), потому что учёт PSI не бесплатен для планировщика.

Окружение

node-accelerator 4.0.0 / 4.0.1, Debian 12 и 13, ядро XanMod 6.18.47-x64v3 (устанавливает сам тулкит), 12 боксов из 12.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions