Выдача асинхронного ввода / вывода на странице - PullRequest
1 голос
/ 17 июля 2011

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

1 Ответ

3 голосов
/ 17 июля 2011

madvise(start_address, length, MADV_WILLNEED) сделает это.

Обратного вызова на самом деле не существует, хотя вы можете опросить снимок состояния с помощью системного вызова mincore, если хотите.

Обратите внимание, что противоположный намек MADV_DONTNEED не не делает то, что вы думаете, msync. Документация лжет.
Не существует нереализованного способа запуска асинхронной обратной записи в Linux (хотя в документации сказано так). Вы можете выбрать между отсутствием операции, выбрасыванием страниц, синхронной обратной записью или асинхронной обратной записью с очисткой кэша.

...