Тестовый робот ядра Intel сообщил об улучшении производительности на 3888,9% в тестовом примере масштабируемости «will-it-scale.per_process_ops», запущенном на тестовом сервере Intel Xeon Platinum (Cooper Lake). К счастью, у Intel есть ресурсы для поддержки этой автоматизированной службы для тестирования коммитов/патчей для каждого ядра, и она уже много лет поддерживает своего публичного робота для тестирования ядра, чтобы помочь уловить положительные и отрицательные изменения в производительности кода Linux.
Фиксом, вызвавшим этот огромный прирост производительности, является mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned sizes. Сообщение о патче подтверждает, что он исправит некоторые предыдущие проблемы производительности и обеспечит значительный прирост в специализированных случаях.
После интеграции hotfix mmap() анонимной памяти без конкретной подсказки адреса и размером не менее PMD_SIZE будет выровнен по PMD, чтобы он мог воспользоваться преимуществами опорной страницы THP. Однако было показано, что это изменение приводит к значительному регрессу некоторых рабочих нагрузок. Замедление бенчмарка cactusBSSN на некоторых платформах достигает 600%. Похоже, что в бенчмарке создается множество абстракций размером 4632 КБ, которые до изменений объединялись в большую область с поддержкой THP, а теперь они фрагментируются на несколько областей, каждая из которых выровнена по границе PMD с пробелами между ними. Таким образом, проблема, по-видимому, вызвана в основном тем, что модель доступа к памяти в бенчмарке страдает от сглаживания TLB или кэша из-за выровненных границ отдельных областей. Другой известной проблемой, связанной с коммитом efa7df3e3bb5, является darktable, и раннее тестирование показывает, что этот патч исправляет проблему и там. Чтобы исправить, но при этом попытаться извлечь пользу из анонимного выравнивания карт, дружественного THP, добавьте условие, что размер карты должен быть кратен размеру PMD, а не меньше PMD.
Патч mmap, слитый на прошлой неделе, затрагивает всего одну строку кода. Приведенный патч для управления памятью, вносящий регрессии в основное ядро Linux, находится на вершине с декабря 2023 года. Я буду запускать некоторые бенчмарки на своей стороне, чтобы найти любые другие реальные рабочие нагрузки, в которых наблюдаются какие-либо заметные изменения в производительности с этим последним кодом ядра Linux, помимо небольших синтетических тестовых.
Комментарии (0)