2013-04-05 59 views
0

我怎樣才能在/ proc/meminfo中Linux的API來獲取Hugepagesize

Hugepagesize的的Hugepagesize值:2048 KB

沒有解析的/ proc/meminfo中?

我可以用

#include <unistd.h> 
long sz = sysconf(_SC_PAGESIZE); 

是否有一個參數的sysconf將提供Hugepagesize拿到常規頁面大小?

+0

什麼是錯的解析'的/ proc/meminfo'?你只需要在程序中創建一次巨大的頁面大小。你不能在啓動時解析'/ proc/meminfo' - 它很容易解析....不要忘記'/ proc /'是一個僞文件系統(它不是*磁盤,不涉及真正的I/O)並閱讀它非常便宜。 – 2013-04-05 17:50:18

+0

謝謝。我可以解析/ proc/meminfo,我並不十分擔心成本。我只是想知道,如果有一個sysconf API,解析/ proc/meminfo是否是最好的方法。 – 2013-04-08 12:45:30

+0

* hugepagesize *的概念是Linux(特別是x86-64)特有的,Linux提供'/ proc /'作爲從內核查詢這些信息的首選方式,所以請去分析它。 – 2013-04-08 17:49:59

回答

1

我不認爲Linux公開了一個編程API來獲取用戶空間的值。但是我同意這裏的評論....../proc/meminfo是一個很好的選擇。

你可以看一下在$內核中的內核代碼/ FS的/ proc/meminfo.c,看看它是如何得出:

> meminfo_proc_show() 
    > hugetlb_report_meminfo() 
    > 1UL << (huge_page_order(h) + PAGE_SHIFT - 10) // actual value