Главные новшества
- Добавлен системный вызов pidfd_open() для получения дескриптора pidfd по номеру pid. Механизм pidfd позволяет при отправке сигнала исключить риск того, что процесс-получатель успеет завершиться и на его месте успеет оказаться совсем другой процесс с таким же process ID. Подробности.
- Ограничения частотных диапазонов в планировщике процессов. Например, критические процессы можно запускать с минимальным порогом частоты (скажем, не менее 3 ГГц), а низкроприоритетные — с верхним порогом частоты (к примеру, не более 2 ГГц). Подробности.
- Поддержка видеочипов семейства AMD Navi (RX5700) в драйвере amdgpu. Реализована вся необходимая функциональность, включая кодирование/декодирование видео и управление питанием.
- Полноценнная работа на х86-совместимых процессорах Zhaoxin, созданных в результате сотрудничества компании VIA и правительства Шанхая.
- Подсистема управления питанием по технологии Intel Speed Select, характерной для некоторых процессоров семейства Xeon. Технология примечательна возможностью детальной настройки производительности для каждого ядра ЦП.
- Энергоэффективный механизм режима ожидания процессов в пространстве пользователя, использующий инструкции
umwait
для процессоров Intel Tremont. Подробности. - Допущен к использованию диапазон 0.0.0.0/8, что даёт 16 млн новых IPv4-адресов. Подробности.
- Гибкий легковесный гипервизор ACRN, хорошо подходящий для управления IoT-систем (интернет вещей). Подробности.
Далее перечислены некоторые другие изменения.
Основная часть ядра
- Поддержка сжатия прошивок в xz-формат, что позволяет уменьшить каталог /lib/firmware с ~420 Мб до ~130 Мб.
- Новый вариант системного вызова
clone()
с возможностью задать большее количество флагов. Подробности. - Автоматический выбор большего шрифта для высоких разрешений в консоли.
- Опция
CONFIG_PREEMPT_RT
, знаменующая скорую интеграцию набора RT-патчей в основную ветку ядра.
Файловая подсистема
- Системные вызовы
BULKSTAT
иINUMBERS
для XFS v5, также начата работа по реализации многопоточного обхода инодов. - Btrfs теперь использует быстрые контрольные суммы (crc32c) на всех архитектурах.
- К открытым файлам на Ext4 теперь жёстко применяется флаг неизменяемости (иммутабельности). Реализована поддержка пустот (holes) в каталогах.
- CEPH научилась работать с SELinux.
- Механизм smbdirect в CIFS больше не считается экспериментальным. Добавлены криптоалгоритмы для SMB3.1.1 GCM. Повышена скорость открытия файлов.
- На F2FS можно размещать файлы подкачки, они работают в режиме прямого доступа. Возможность отключить сборщик мусора при
checkpoint=disable
. - Клиенты NFS могут установить сразу несколько TCP-подключений к серверу через опцию монтирования
nconnect=X
.
Подсистема памяти
- Каждому dma-buf даётся полноценный инод. Из каталогов
/proc/*/fd
и/proc/*/map_files
можно получить много подробных данных об использовании буферов shmem. - Механизм smaps показывает отдельную информацию по анонимной и разделяемой памяти, а также по файловому кэшу в proc-файле
smaps_rollup
. - Использование rbtree для swap_extent повысило производительность в условиях активного использования подкачки многими процессами.
- В
/proc/meminfo
отображается количество страниц vmalloc. - Расширены возможности
tools/vm/slabinfo
в плане сортировки кэшей по степени фрагментации.
Виртуализация и безопасность
- Драйвер virtio-iommu для паравиртуализированного устройства, позволяющего слать запросы IOMMU без эмуляции таблиц адресов.
- Драйвер virtio-pmem для доступа к накопителям через физическое пространство адресов.
- Ускорение доступа к метаданным для vhost. Для TX PPS тесты показывают рост скорости на 24%.
- Для vhost_net запрещён zerocopy по умолчанию.
- Ключи шифрования можно прикреплять к пространствам имён.
- Поддержка xxhash — крайне быстрого не-криптографического алгоритма хэширования, скорость которого ограничена только производительностью памяти.
Сетевая подсистема
- Начальная поддержка nexthop-объектов, созданных для улучшения масштабируемости маршрутов IPv4 и IPv6.
- Netfilter научился выгружать фильтрацию на аппаратные устройства ускорения. Добавлена встроенная поддержка отслеживания соединений для мостов.
- Новый модуль контроля трафика, позволяющий манипулировать MPLS-заголовками пакетов.
- Удалена подсистема isdn4linux.
- Доступны LE-пинги для Bluetooth.
Аппаратные архитектуры
- Новые ARM-платформы и устройства: Mediatek mt8183, Amlogic G12B, Kontron SMARC SoM, Google Cheza, devkit для Purism Librem5, Qualcomm Dragonboard 845c, Hugsun X99 TV Box, и др.
- Для x86 добавлен механизм
/proc/<pid>/arch_status
для отображения архитектурно-специфической информации вроде времени последнего использования AVX512. - Оптимизирована работа VMX для KVM, скорость vmexit повышена на 12%.
- Добавлена и обновлена различная информация о процессорах Intel KabyLake, AmberLake, WhiskeyLake и Ice Lake.
- Сжатие lzma и lzo для uImage на PowerPC.
- Защищённая virtio-виртуализация для S390.
- Поддержка больших страниц памяти для RISCV.
- Режим путешествий во времени для User-mode Linux (замедление и ускорение времени).
Драйверы устройств
- Распознание метаданных HDR для драйверов amdgpu и i915.
- Расширения функциональности для видеочипов Vega12 и Vega20 в amdgpu.
- Мультисегментная гамма-коррекция для i915, а также асинхронное отключение питания экрана и ряд новых прошивок.
- Видеодрайвер Nouveau научился распознавать чипы семейства TU116.
- Новые Bluetooth-протоколы MediaTek MT7663U и MediaTek MT7668U.
- Выгрузка TLS TX HW для Infiniband, а также расширение аппаратного и температурного мониторинга.
- Распознание Elkhart Lake в драйвере HD Audio.
- Новые аудиоустройства и кодеки: Conexant CX2072X, Cirrus Logic CS47L35/85/90, Cirrus Logic Madera, RT1011/1308.
- Драйвер Apple SPI для клавиатуры и трекпада.
- В подсистеме watchdog можно установить предельное время для открытия
/dev/watchdogN
. - Механизм управления частотой cpufreq получил поддержку imx-cpufreq-dt и Raspberry Pi.
>>> Подробности