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