После того, как фолио памяти не смогли сделать это В Linux 5.15 это низкоуровневое изменение кода управления памятью ядра, которое может повлиять на производительность, будет применяться в Linux 5.16.

Перед окном слияния Linux 5.16, которое может открыться уже завтра, Мэтью Уилкокс прислал свой пул-реквест для добавления фолио в ядро. Вот основной отрывок из запроса на включение для тех, кто не знаком с фолио или забыл подробности за те месяцы, когда эта функция находилась в разработке:

Смысл всего этого оттока состоит в том, чтобы разрешить файловым системам и кешу страниц управлять памятью более крупными блоками, чем PAGE_SIZE. Первоначальный план заключался в использовании составных страниц, таких как THP, но я столкнулся с проблемами с некоторыми функциями, ожидающими только заголовочную страницу, в то время как другие ожидают точную страницу, содержащую определенный байт. Тип фолио позволяет функции объявлять, что она ожидает только головную страницу. Практически случайно это позволяет нам удалить различные вызовы VM_BUG_ON (PageTail (page)) и complex_head ().

Этот запрос на перенос преобразует только части основного MM и кеша страницы. В версии 5.17 мы намерены преобразовать различные файловые системы (XFS и AFS готовы; другие файловые системы могут это сделать), а также преобразовать больше MM и кеша страниц в фолио. Для версии 5.18 должны быть готовы многостраничные фолио.

Многостраничные фолио позволяют улучшить некоторые рабочие нагрузки. Выигрыш в 80% реален, но кажется искусственным тестом (запуск postgres, который не представляет серьезной нагрузки). Реальные рабочие нагрузки (например, сборка ядра, запуск postgres в стабильном состоянии и т. Д.), Похоже, выигрывают от 0 до 10%. Я не слышал ни о каких потерях производительности в результате этой серии. Никто не делал серьезной настройки производительности; Я полагаю, что настройка алгоритма опережения чтения может дать еще несколько интересных результатов. Есть и другие места, где мы могли бы создать большие фолио, а в настоящее время этого не делаем, например, записи, размер которых превышает PAGE_SIZE.

Для конечных пользователей это означает возможное повышение производительности и более в следующих выпусках ядра будут созданы функциональные возможности фолио памяти.

Дополнительные сведения см. в запросе на вытягивание . Теперь посмотрим, решит ли Линус Торвальдс вытащить эти ~ 2k + строк изменений или возникнут какие-либо новые/возобновленные возражения по поводу добавления.

Categories: IT Info