Линус Торвальдс, главный разработчик ядра Linux, объявил о выпуске ядра Linux 6.11 RC2 4 августа 2024 года. В этом выпуске основное внимание уделяется устранению проблем со сборкой и тестированием, выявленных в RC1, при этом продолжается доработка и улучшение различных аспектов ядра.
Ключевые области улучшения
Второй релиз-кандидат (RC2) ядра Linux 6.11 содержит множество улучшений, обновлений и исправлений ошибок. Ниже приведены некоторые заметные улучшения и исправления в ядре 6.11 RC2.
Виртуализация ядра (KVM)
В подсистему виртуальной машины на базе ядра (KVM) было внесено несколько улучшений и исправлений:
- Исправлено определение максимального уровня отображения NPT для личных страниц в x86 KVM
- Устранен спам в журналах с ограниченными периодами работы таймера APIC
- Запрещена предварительная ошибка для виртуальных машин SNP перед инициализацией
Сеть
Сетевой стек получил многочисленные обновления и исправления ошибок:
- Улучшена обработка контекстов RSS (масштабирование на стороне приема)
- Исправлены проблемы в драйвере Mellanox MLX5
- Улучшенное планирование MPTCP (многолучевого TCP) и управление соединениями
- Исправлены различные ошибки, связанные с Bluetooth
Графика и дисплей
Внимание привлекла подсистема диспетчера прямого рендеринга (DRM):
- Исправлены проблемы с обработкой наложения при использовании экранных объектов в VMware graphics
- Улучшена поддержка управления питанием графического процессора AMD
- Исправлены различные мелкие ошибки в Intel и других графических драйверах
Файловые системы
Улучшены файловые системы XFS и Btrfs:
- Исправлены утечки памяти и улучшена обработка ошибок в XFS
- Устранены потенциальные проблемы с повреждением в Btrfs
Изменения, связанные с архитектурой
Было внесено несколько улучшений, зависящих от архитектуры:
- Расширенная поддержка различных моделей процессоров ARM и ARM64
- Улучшена обработка функций процессора в RISC-V
- Исправлены проблемы, связанные с событиями производительности x86 и идентификацией процессора
Также исправлено несколько неточностей и устаревшая информация в существующей документации.
Специальные обновления драйверов
В то время как 6.11-rc2 в первую очередь ориентирован на исправления ошибок и улучшения стабильности, также исправлено несколько обновлений драйверов для конкретных драйверов, в том числе для графических процессоров и сетевых адаптеров. Эти обновления включают:
- drm/amdgpu: исправлены ошибки в обработке APU, непрерывной обработке синтаксического анализа IB и поддержке интерфейса gpu_metrics sysfs.
- drm/i915: исправлена потенциальная проблема с переполнением целых чисел.
- drm/vmwgfx: Исправлены проблемы с наложением, взаимоблокировкой во время опроса dma buf fence и обработкой немых буферов.
- ice: Improvements to Rx queue handling, XSK pool management, and interrupt mapping.
- net/mlx5: Fixes for error handling, health draining, and lock management.
- net/mlx5e: Добавлена проверка возвращаемых значений, требования к поддержке действий классификатора mlx5 tc и исправлены утечки обновлений записей CT.
- net/phy: realtek: Исправлена ошибка со статусом KSZ9131 MDI-X.
Решение проблем со сборкой и тестированием
Значительное внимание в 6.11-rc2 уделяется решению проблем сборки и тестирования, возникших в предыдущем релиз-кандидате.
Линус Торвальдс отметил, что RC1 столкнулся с несколькими небольшими, но досадными сбоями сборки и тестирования в тестовой матрице Гюнтера. Хотя эти проблемы были в основном “глупыми и тривиальными”, они выделили области, требующие внимания. RC2 нацелен на устранение большей части этого “глупого шума”, не создавая значительных новых проблем.
Анализ Герта Уиттерхувена, представленный в списке рассылки Linux Kernel, содержит подробную разбивку этих решений.
- Исправления ошибок: Перечислены в общей сложности 20 исправлений ошибок, демонстрирующих приверженность стабильности кода. В частности, были устранены несколько ошибок, связанных с архитектурой Sparc и файловой системой bcachefs.
- Разрешения предупреждений: В отчете освещаются 19 улучшений предупреждений в версии 6.11-rc2, что указывает на акцент на качестве кода и ремонтопригодности. Многие из этих предупреждений касались отсутствующих прототипов и неинициализированных переменных.
Регрессии ошибок сборки в ядре Linux 6.11-rc2
Регрессии ошибок сборки в ядре Linux версии 6.11-rc2 по сравнению с версией 6.10 включают:
- Ошибка несовместимого типа указателя в
arch/mips/sgi-ip22/ip22-gio.c
для архитектуры m68k. - Логическая ошибка not в
drivers/md/dm-integrity.c
. - Ошибка размера кадра в
fs/bcachefs/data_update.c
для архитектуры m68k. - Постоянная ошибка в
include/linux/compiler_types.h
для архитектуры powerpc. - Несколько ошибок переполнения и неизвестных ошибок псевдообработки для архитектуры sh4.
Улучшения при ошибке сборки в ядре Linux версии 6.11-rc2 по сравнению с версией 6.10 включают:
- Исправлены различные ошибки в
arch/sparc
, включая отсутствующие прототипы, неопределенные символы и ошибки перемещения. - Удаление неиспользуемых переменных и исправления для использования pragma и option в
drivers/gpu/drm/msm/adreno
.
Регрессии предупреждений о сборке в ядре Linux версии 6.11-rc2 по сравнению с версией 6.10 включают:
- Возможное использование неинициализированной переменной в
fs/btrfs/fiemap.c
. - Предупреждение об отсутствии точки входа clone3() в
kernel/fork.c
.
Улучшения в предупреждениях о сборке в версии ядра Linux 6.11-rc2 по сравнению с версией 6.10 включают:
- Разрешение предупреждений об переопределении в различных
.config
файлах. - Исправлены отсутствующие прототипы в
arch/mips/sgi-ip22
иarch/sparc/prom
. - Разрешение предупреждений о неинициализированных переменных в
drivers/base/regmap/regcache-maple.c
. - Исправлено возможное использование неинициализированной переменной в
fs/btrfs/extent_io.c
.
Подводя итог, можно сказать, что версия ядра Linux 6.11-rc2 позволила сократить количество ошибок сборки и предупреждений в различных архитектурах, включая MIPS, PowerPC, SH4 и SPARC.
Улучшения в основном связаны с исправлением отсутствующих прототипов, решением проблем с инициализацией переменных и устранением ошибок компилятора.
Тестируем ядро Linux 6.11 RC2
Ядро Linux 6.11 RC2 внесло многочисленные улучшения и исправления в различные подсистемы.
Пользователям и разработчикам рекомендуется протестировать второй релиз-кандидат версии 6.11, загрузив его с веб-сайта Kernel.org или с дерева git Линуса Торвальдса.
Пожалуйста, обратите внимание, что эти версии для разработки не следует использовать в производственных системах из-за их экспериментального характера.
Если следовать обычному циклу разработки, мы можем ожидать финального выпуска Linux 6.11 примерно 22 сентября 2024 года.
Ресурс: