Системный вызов UNIX, чтобы сбросить бит ссылки определенной страницы в таблице страниц? - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь подсчитать количество обращений к определенному набору страниц, взломав биты ссылок в таблице страниц. Существует ли какой-либо системный вызов или любой другой способ сброса эталонных битов (в UNIX-подобных системах)?

Таблица страниц - это структура данных, используемая системой виртуальной памяти в операционной системе компьютера для хранения отображения между виртуальными адресами и физическими адресами. (https://en.wikipedia.org/wiki/Page_table)

В Unix-подобных системах есть бит, связанный с каждой записью таблицы страниц, называемый битом ссылки, который указывает, был ли доступ к странице с тех пор, как бит был сброшен. Ядро linux периодически сбрасывает эти ссылочные биты и через некоторое время проверяет, к каким страницам обращались, чтобы обнаружить «горячие» страницы. Но эта информация очень грубая и с низкой точностью, поскольку ничего не говорит о количестве обращений и их времени.

Я хочу подсчитать доступ к определенным страницам в течение более коротких эпох путем сброса контрольных битов, а затем проверить доступ к страницам через короткое время.

Поэтому мне было интересно, существует ли какой-либо системный вызов или прерывание ЦП, которое предоставляет средства для сброса «опорных битов». В противном случае мне нужно углубиться в ядро, чтобы увидеть, что там происходит.

1 Ответ

0 голосов
/ 29 июня 2018

Нет API для сброса битов ссылки на страницу. Управление страницами - очень нервный аспект настройки ядра, и никто не хочет его расстраивать. Конечно, вы можете изменить ядро ​​под свои нужды.

Вместо этого вы можете взглянуть на Valgrind , который является средством отладки и профилирования для запуска одной программы. Обычно он обнаруживает незначительные ошибки памяти, такие как обнаружение использования динамического блока памяти после того, как он был освобожден.

Если вам нужна информация об управлении страницей для системы в целом, я думаю, что наиболее целесообразным решением является взлом ядра.

...