2012-10-13 45 views
2

我試圖通過Linux中的某些基準測試應用程序來跟蹤內存訪問模式。最終,我想知道內核(或用戶)空間中的CPU訪問的物理內存地址。如何知道Linux內核中的CPU訪問的物理內存地址?

有沒有一種簡單的方法可以在不修改內核源代碼的情況下獲取它?我希望可以在我的內核模塊中掛接一些MMU例程,然後將虛擬地址轉換爲物理地址,並將物理地址寫入內核日誌或類似的東西。這可能嗎?

使用Qemu這樣的模擬器會更好嗎?

+0

沒有簡單的方法,內核可以免費將RAM的某些部分換出並隨時重新使用它。如果您只想瞭解虛擬內存映射,請考慮進程1234的'/ proc/1234/maps'。 –

+2

Linux內核提供進程**虛擬**地址空間。 – jordanm

+0

感謝您的回覆。我想知道基準測試應用程序訪問哪個物理內存,更具體地說,是否訪問模式是否均勻分佈在物理內存中。 – Brian

回答

1

是啊去QEMU,它是最適合您的要求。你將不得不調整QEMU代碼來獲得從虛擬尋址到物理地址的轉換。 QEMU只是用於研究目的,所以你可能無法像真實系統那樣得到確切的映射行爲。但是,它仍然會在一定程度上滿足你的目的。

相關問題