我正在尝试设置一些性能分析以及影响缓冲策略的运行时决策.我的应用程序接收指向库(CUDA或OpenCL)分配的缓冲区的指针.
如何测试内存区域是否已锁定页面?
据我所知,POSIX给我们mlock()和munlock().我如何有效地检查虚构的mislocked()?
Mac OS X或Linux的答案会很有帮助.
我已经看过几个引用,比如this和this,它们表明驱动程序库的编写者已经想出了如何进行这个测试.如何在我的用户代码中执行此操作?
最佳答案 / proc / $PID / smaps包含“Locked:”行,这对于简单的保证是否足够,无论页面是否被锁定.否则请参见/ proc / $PID / pagemap接口.