Память заблокирована (закреплена) или нет? - PullRequest
4 голосов
/ 23 августа 2011

Я пытаюсь настроить профилирование производительности, а также решения во время выполнения, влияющие на стратегию буферизации. Мое приложение получает указатель на буфер, выделенный библиотекой (CUDA или OpenCL).

Как проверить, что область памяти заблокирована страницей?

Насколько я могу судить, POSIX дает нам mlock() и munlock(). Как мне эффективно проверить фиктивный mislocked()?

Ответы для Mac OS X или Linux были бы полезны.

Я видел несколько ссылок, таких как this и this , которые предполагают, что создатели библиотек драйверов выяснили, как выполнить этот тест. Как я могу сделать это в моем коде пользователя?

1 Ответ

2 голосов
/ 24 августа 2011

/proc/$PID/smaps содержит строку «Locked:», которой должно быть достаточно для простого подтверждения, заблокированы ли страницы или нет.В противном случае см. /proc/$PID/pagemap интерфейс.

...