2013-08-29 19 views
1

我正在檢查點/重新啓動Linux內核模塊。其中,一個進程向這個模塊發送一個請求給自己的檢查點。在這個過程中,有關過程的信息存儲在一個文件中,該文件稍後用於重新啓動過程。給定一個Linux內核模塊中的頁面指針,如何獲取它被分配的NUMA節點ID?

現在,當這個模塊存儲與在一個文件中(過程)頁面的信息,我們也想知道哪個NUMA節點此頁面被分配 你可以建議將得到最好的辦法數據(頁面到NUMA節點映射)。由於我在內核空間,我想使用Linux內核函數本身來獲取這些信息。

我試過使用page_to_nid(page),但我不確定它給了我正確的值。 (我喜歡,我正在研究Linux 2.6.32,64位核心機器,並且有4個NUMA節點(每個上有4個核心),但是這個函數在調用時返回32)

謝謝, Ajay

+0

閱讀有關[應用程序檢查點](http://en.wikipedia.org/wiki/Checkpoint_restart)的wikipage,它有一些指向內核輔助檢查點的指示....(您可能學習的源代碼)。 –

+0

hey @BasileStarynkevitch,我正在研究BLCR代碼(在上面的wiki頁面中提到過),它沒有這個信息(頁面爲NUMA節點映射)。 –

+0

然後詢問一些內核專用的郵件列表或論壇。 http://kernelnewbies.org/或https://lkml.org/ –

回答

1

你可以閱讀 「深入理解Linux虛擬內存管理器」,它指出:

節點ID:這是節點ID的節點(NID)...

所以我非常確定page_to_n ID應該是正確的功能。

+1

是的,page_to_nid(),確實給出了正確的numa nodeid ....我更新了我的代碼,並與/ proc//numa_maps文件進行了比較,並且數據匹配 –

相關問題