簡體   English   中英

在 Linux 中找出占用 CMA 的內容(連續 Memory 分配)

[英]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。

類似地,文件countusedmaxchunk包含為 CMA 區域保留的頁數、當前正在使用的頁數以及當前可分配的最大頁數。 將它們的內容與系統的 PAGE_SIZE 相乘,以獲得以字節為單位的數量。

allocfree不可讀,但您可以使用它們手動保留最多 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.

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