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