我想知道在已被换出的页面上发出异步读取操作的正确方法是什么。一旦完成,有没有办法执行回调,以便我可以用该页面执行某些逻辑?
答案 0 :(得分:3)
madvise(start_address, length, MADV_WILLNEED)
会这样做。
回调实际上并不存在,但如果您愿意,可以使用mincore
系统调用来轮询状态快照。
请注意,相反的提示MADV_DONTNEED
不执行您的想法,msync
也不行。文件说谎。
在Linux下启动异步 writeback 没有非破坏性的方法(尽管文档中这样说)。您可以选择无操作,抛出页面,同步写回或异步写回来清除缓存。