2011-08-23 69 views
4

我試圖設置一些性能分析以及影響緩衝策略的運行時決策。我的應用程序接收一個指向由庫(CUDA或OpenCL)分配的緩衝區的指針。內存是否被鎖定(固定)?

我該如何測試內存區域是頁面鎖定的?

據我所知,POSIX給我們mlock()munlock()。如何有效檢查虛構的mislocked()

對於Mac OS X或Linux的答案會有所幫助。

我見過幾個參考文獻,如thisthis,表明驅動程序庫的作者已經找出瞭如何進行這個測試。我如何在我的用戶代碼中執行此操作?

回答

2

/proc/$PID/smaps包含「Locked:」這一行應該足以保證頁面是否被鎖定。否則請參閱/proc/$PID/pagemap界面。

+0

終於可以在linux系統上測試這個了。這是一個好方法。希望能夠從我的程序中更方便地打電話給我,但我可以使用它。我只是延長一點時間,看看是否有人可以提出一種不實現proc僞文件系統的OS X方法。 – NoahR

+0

感謝您的幫助@adobriyan! – NoahR