[英]Finding out what's taking up the CMA (Contiguous Memory Allocation) in Linux
肯定有東西占用了CMA
緩沖區,但我不知道是什么。
# cat /proc/meminfo | grep -i cma
CmaTotal: 262144 kB
CmaFree: 1272 kB
系統消息幾乎沒有顯示:
# dmesg | grep -i cma
[ 0.000000] cma: Reserved 256 MiB at 0x00000000c0000000
我已經為cma
啟用了debugfs
,但我還沒有弄清楚如何使用它:
/sys/kernel/debug/cma/cma-reserved# ls
alloc base_pfn bitmap count free maxchunk order_per_bit used
我不確定如何或是否可以找出誰使用 CMA 區域(我自己非常想知道),但我認為我已經弄清楚如何使用 debugfs。
您正在訪問的 /sys/kernel/debug/cma/cma-reserved 目錄中的文件包含有關 CMA 區域的信息,以頁框號 (PFN) 和頁數表示。
例如,如果您cat /sys/kernel/debug/cma/cma-reserved/base_pfn
,您將看到 CMA 區域開始的物理 memory 地址的 PFN。
類似地,文件count
、 used
和maxchunk
包含為 CMA 區域保留的頁數、當前正在使用的頁數以及當前可分配的最大頁數。 將它們的內容與系統的 PAGE_SIZE 相乘,以獲得以字節為單位的數量。
alloc
和free
不可讀,但您可以使用它們手動保留最多 maxchunk 數量的頁面並釋放任何先前保留的區域,使用:
echo X > /sys/kernel/debug/cma/cma-reserved/alloc
或者
echo X > /sys/kernel/debug/cma/cma-reserved/free
分別。
bitmap
是另一個可讀文件,其中包含...一個 bitmap 已使用或未使用的頁面。
還要檢查: https://www.kernel.org/doc/html/latest/admin-guide/mm/cma_debugfs.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.