簡體   English   中英

如何獲取大頁面的物理地址

[英]How to get the physical address of a huge-page

我需要從用戶空間獲取大頁面(2 MB)的物理地址。 我設法從頁面地圖獲取正常4 KB頁面的物理地址,如https://shanetully.com/2014/12/translating-virtual-addresses-to-physcial-addresses-in-user-space/#codeprocpidpagemapcode所示但是我不明白我應該如何使用pagemap來獲取大頁面的物理地址。 如何在頁面映射中表示巨大的頁面頁框號? 任何參考,特別是任何代碼都將受到高度贊賞。

應該是一樣的。 普通頁面和大頁面之間的主要區別是頁面表的幾層。 對於大頁面(至少在x86上),頁表行程提前結束。

巨頁通常以比典型頁面更多的零結束,因為它們需要與它們的大小對齊(在2MB的情況下,低21位應該都是零)。

如果從讀取中獲取-EINVAL,請從頁面地圖文檔中查看此引用(該示例讀取錯誤的字節數):

如果您沒有在8字節邊界上開始讀取(例如,如果您在文件中尋找奇數個字節),或者如果讀取的大小不是多個,則從任何文件讀取將返回-EINVAL 8個字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM