Ports/loongarch64/Kernel: различия между версиями
Нет описания правки |
|||
Строка 2: | Строка 2: | ||
На этой странице описаны ядра, которые можно найти в [[Ports/loongarch64|sisyphus_loongarch64]]. | На этой странице описаны ядра, которые можно найти в [[Ports/loongarch64|sisyphus_loongarch64]]. | ||
== Разновидности (Flavours) == | |||
* [[#6.12|6.12]] | |||
* [[#loongarch|loongarch]] | |||
== Сторонние модули == | |||
* '''zfs''' -- <code>kernel-modules-zfs-[flavour]</code> -- поддержка файловой системы ZFS | |||
* '''yt6801''' -- <code>kernel-modules-yt6801-[flavour]</code> -- поддержка сетевых карт Motorcomm YT6801, например, встречающихся в материнских платах XC-LS3A6M. | |||
* '''la_ow_syscall''' -- <code>kernel-modules-la_ow_syscall-[flavour]</code> -- ядерная часть [[Ports/loongarch64/New wold, old world, libLoL|libLoL]]. | |||
Также собраны и другие модули, полный и актуальный список можно увидеть на [https://packages.altlinux.org/en/search/?branch=sisyphus_loongarch64&q=kernel-modules packages.altlinux.org]. | |||
== 6.12 == | == 6.12 == |
Текущая версия от 13:56, 25 марта 2025
На этой странице описаны ядра, которые можно найти в sisyphus_loongarch64.
Разновидности (Flavours)
Сторонние модули
- zfs --
kernel-modules-zfs-[flavour]
-- поддержка файловой системы ZFS - yt6801 --
kernel-modules-yt6801-[flavour]
-- поддержка сетевых карт Motorcomm YT6801, например, встречающихся в материнских платах XC-LS3A6M. - la_ow_syscall --
kernel-modules-la_ow_syscall-[flavour]
-- ядерная часть libLoL.
Также собраны и другие модули, полный и актуальный список можно увидеть на packages.altlinux.org.
6.12
Flavour по умолчанию, идеалогически и технически максимально приближенный к 6.12 на основных архитектурах.
Дополнительные патчи
ACPI cpufreq driver for LoongArch
Некоторые системы с процессорами Loongson 3 предоставляют возможность управления частотой процессора через ACPI. Сделано это специфичным для таких систем способом, так что со стороны ядра linux для этого требуется особый драйвер, который включен в наши ядра на loongarch64
.
Интерфейс управления частотой похож на стандартный cpufreq. Управление осуществляется каждым CPU независимо. Поддерживаются два governor'а:
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors performance powersave
По умолчанию используется governor "performance", при котором CPU всегда работает на штатной (максимальной) частоте, то есть cpufreq никак не влияет на производительность:
Переключаться governer'ами можно используя тот же интерфейс в sysfs:
# echo 'powersave' | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor powersave
Проверим, что получилось:
# grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:powersave /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor:powersave /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor:powersave /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor:powersave
Вернёмся обратно к performance
:
# echo 'performance' | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor performance
Можно также поднять минимальную используемую частоту процессора, чтобы уменьшить лаги при использовании powersave
, или опустить максимально используемую частоту для снижения энергопотребления.
Известные проблемы
Если переключать настройки очень быстро, иногда остаётся применённой не последняя, а, например, предпоследняя. При нормальной работе такого не происходит, но этим зачем-то занимается powertop, так что использование powertop на ноутбуках с loongarch64 не рекомендуется.
pci: irq: Add an early parameter to limit pci irq numbers
Серверные системы на loongarch64 часто не предоставляют достаточно векторов прерываний (MSIX vectors) для устройств PCI: драйвера многих устройств выделяют себе векторов по числу логических ядер процессора, что нормально на x86_64 (где таких векторов потенциально больше) или на десктопах loongarch64 (где ядер немного), но на серверных системах 3-4 устройства уже могут исчерпать все вектора MSIX.
Чтобы как-то побороться с этим, добавляется параметр командной строки ядра pci_irq_limit=NNN
, позволяющий ограничить количество векторов прерываний, выделяемых каждому устройству. По умолчанию эти ограничения отключены.
ice: Introduce parameters to clamp number of MSI-X vectors
Предыдущая проблема особенно ярко проявляется при работе с сетевыми картами Intel, поэтому было принято решение реализовать и включить по умолчанию дополнительные ограничения для драйвера ice
в виде параметров модуля:
max_lan_msix=32
для количества векторов прерываний, используемых для обработки LAN-траффика;max_rdma_msix = ICE_RDMA_NUM_AEQ_MSIX + 1
для количества векторов прерываний, используемых для обработки RDMA.
Этими параметрами можно управлять, создав специальный файл в каталоге /etc/modprobe.d
, например такой:
# cat /etc/modprobe.d/ice.conf options ice max_rdma_msix=10 max_lan_msix=24
Чтобы применить изменения в таком файле необходимо выгрузить и потом загрузить модуль ядра ice
.
loongarch
Устаревший flavour. Был единственным с момента создания порта до середины марта 2025-го года, после чего рекомендуемой разновидностью стало 6.12. В будущем возможно будет использоваться для "лёгких" экспериментальных ядер.
Переход на 6.12
Из-за различий запаковки (в первую очередь -- отдельный пакет для модулей DRM) автоматический переход систем, использующих kernel-image-loongarch
на ядра 6.12
при помощи команды udpate-kernel
пока не реализован. Необходимо вручную установить пакеты с ядром и нужными модулями при помощи apt-get install
:
kernel-image-6.12
;kernel-modules-drm-6.12
, если Вы пользуетесь видеокартой (на сервере это, возможно, не нужно);kernel-modules-la_ow_syscall
, если Вы испольуете libLoL;kernel-modules-zfs-6.12
, если Вы используете ZFS;- ...
Например, так:
apt-get install kernel-image-6.12 kernel-modules-drm-6.12 kernel-modules-zfs-6.12
После перезагрузки ядро 6.12 будет использоваться по умолчанию. Дальнейшие обновления любых ядер рекомендуется по прежнему получать при помощи update-kernel
.