В предстоящем ядре Linux 7.4 ожидается оптимизация виртуальной файловой системы (VFS), нацеленная на ускорение открытия файлов в режиме только для чтения. Изменение прошло длительный цикл ревизий и уже включено в профильную Git-ветку подсистемы VFS. Источник изображения: Phoronix Разработчик Матеуш Гузик возглавлял работу над улучшением функции do_open() в VFS, используемой при открытии файлов через поиск по имени пути. За два года изменение прошло пять ревизий. Сейчас при открытии файла создается лишняя служебная запись каталога dentry. Она нужна для преобразования части пути в дисковый inode, внутренний идентификатор файла на диске. Гузик изменил код и убрал эту лишнюю запись. В пояснении к патчу он написал: «При открытии файла захватывается ссылка на конечный dentry в __legitimize_path(), затем ещё одна в do_dentry_open() и, наконец, сбрасывается исходная ссылка в terminate_walk(). Это две модификации, которых не должно быть, — do_dentry_open() может вместо этого использовать уже удерживаемую ссылку». Проще говоря, система дважды выполняет одну и ту же работу при открытии файла. В тесте на 20-ядерной виртуальной машине с помощью набора тестов will-it-scale открытие одного и того же файла в режиме только для чтения стало быстрее. Число операций в секунду выросло на 39%. Источник изображения: Phoronix Такое улучшение длительное время отсутствовало в ядре Linux. Набор изменений размером около 30 строк кода поставлен в очередь на включение в Git-ветку vfs-7.4.lookup репозитория VFS.git. Ожидается, что изменение включат в Linux 7.4 на этапе сбора правок для новой версии и оно попадёт в стабильное ядро до конца 2026 года.
Источник новости: overclockers.ru

