内存是否锁定(固定)?

时间:2011-08-23 19:44:33

标签: macos unix memory-management linux-kernel posix

我正在尝试设置一些性能分析以及影响缓冲策略的运行时决策。我的应用程序收到指向库(CUDA或OpenCL)分配的缓冲区的指针。

如何测试内存区域是否已锁定页面?

据我所知,POSIX为我们提供了mlock()munlock()。如何有效地检查虚构的mislocked()

Mac OS X或Linux的答案会有所帮助。

我见过几个引用,例如thisthis,它们表明驱动程序库的编写者已经想出了如何进行此测试。如何在我的用户代码中执行此操作?

1 个答案:

答案 0 :(得分:2)

/proc/$PID/smaps包含“已锁定:”行,无论页面是否被锁定,该行都应足以简单保证。否则请参阅/proc/$PID/pagemap interface。