После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.13. Среди наиболее заметных изменений: режим ленивого вытеснения в планировщике задач, поддержка атомарной записи в XFS и Ext4, механизм “multigrain timestamps”, адаптивный режим включения полинга в сетевой подсистеме, возможность сборки с оптимизациями AutoFDO, поддержка механизма защиты ARM65 Guarded Control Stack, раздельные стеки в BPF, удаление ReiserFS, режим монтирования tmpfs учёта регистра символов, поддержка POSIX-расширений в SMB3.
В новую версию принято 14172 исправлений от 2086 разработчиков,
размер патча – 46 МБ (изменения затронули 15375 файлов, добавлено 598707 строк кода, удалено 406294 строк). В прошлом выпуске было 14607 исправлений от 2167 разработчиков, размер патча – 37 МБ. Около 52% всех представленных в 6.13
изменений связаны с драйверами устройств, примерно 13% изменений имеют
отношение к обновлению кода, специфичного для аппаратных архитектур, 11%
связано с сетевым стеком, 4% – с файловыми системами и 3% c внутренними
подсистемами ядра.
Основные новшества в ядре 6.13:
- Дисковая подсистема, ввод/вывод и файловые системы
- Добавлен механизм “multigrain timestamps“, позволяющий получать информацию о времени изменения или доступа к файлам c более чем с миллисекундой точностью, но без негативного влияния на производительность. Повышение точности меток приводит к дополнительным накладным расходам из-за увеличения интенсивности записи метаданных на диск, поэтому в предложенной реализации более точные метки создаются не для всех файлов, а только для тех, для которых процессы запрашивают подобные метки через вызов getattr().
- Добавлена поддержка атомарных операций записи, при которых запись данных, размер которых превышает размер сектора, осуществляется атомарно на устройствах хранения, предоставляющих подобную возможность. В настоящее время атомарная запись реализована для XFS, Ext4 в режиме O_DIRECT (Direct I/O) и md RAID 0/1/10.
- Предложен новый механизм подсчёта ссылок для файлов, обеспечивающий прирост производительности на 3-5% в рабочих нагрузках, имеющих более 255 потоков.
- Удалена реализация файловой системы ReiserFS, которая в позапрошлом году была объявлена устаревшей.
- Добавлен sysctl-параметр “fs.dentry-negative” для выставления в VFS политики очистки записей “dentry” (внутреннее представление элементов каталогов) после удаления связанных с ними файлов. Для каких-то видов нагрузки оптимальнее оставлять подобные записи об удалённых файлах, а для каких-то – удалять, поэтому в ядре предоставлена возможность выбора (по умолчанию “dentry” автоматически не удаляются).
- В системный вызов statmount() добавлен флаг STATMOUNT_OPT_ARRAY для возвращения списка опций файловой системы в виде массива из строк, завершающихся нулевым символом и не использующих экранирование “