Последствия изменения perf_event_mlock_kb - PullRequest
2 голосов
/ 31 марта 2019

Я пытаюсь понять точные последствия изменения /proc/sys/kernel/perf_event_mlock_kb.

  • Справочная страница для perf говорит

    Максимальное количество страниц, которое может заблокировать непривилегированный пользователь (2). По умолчанию установлено значение 516 (кБ).

  • Документация по ядру говорит

    Управляющий размер кольцевого буфера на процессор не учитывается по сравнению с пределом mlock. Значение по умолчанию: 512 + 1 страница

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

Правильно ли я понимаю, что формулировка подразумевает, что число должно быть кратно размеру страницы, и если я установлю файл на 8046 на машине с двумя виртуальными ЦП, то perf сможет занять до 16 МБ памяти для события буферы?

1 Ответ

3 голосов
/ 31 марта 2019

Я думаю, что в документации по ядру отсутствует единица.

Это должно быть 512 КБ + 1 страница = 516 КБ, что соответствует имени файла и справочной странице perf. Фактическое имя файла по-прежнему не было бы названо _kb, если бы оно имело другие единицы.

cat /proc/sys/kernel/perf_event_mlock_kb в моей системе показывает 516, так что это в значительной степени подтверждает, что он в килобайтах.

число должно быть кратно размеру страницы

Да, число должно делиться на 4, чтобы размер делился на размер страницы 4k, на x86.

Если нет, ядро ​​предположительно округляется в большую или меньшую сторону, IDK которого.

...