首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解是什么占用了Linux中的CMA (连续内存分配)

了解是什么占用了Linux中的CMA (连续内存分配)
EN

Stack Overflow用户
提问于 2020-12-09 00:16:16
回答 1查看 361关注 0票数 0

肯定有什么东西占用了CMA缓冲区,但我不知道是什么。

代码语言:javascript
复制
# cat /proc/meminfo | grep -i cma
CmaTotal:         262144 kB
CmaFree:            1272 kB

系统消息几乎没有显示任何内容:

代码语言:javascript
复制
# dmesg | grep -i cma
[    0.000000] cma: Reserved 256 MiB at 0x00000000c0000000

我已经为cma启用了debugfs,但我还不知道如何使用它:

代码语言:javascript
复制
/sys/kernel/debug/cma/cma-reserved# ls
alloc  base_pfn  bitmap  count  free  maxchunk  order_per_bit  used
EN

回答 1

Stack Overflow用户

发布于 2021-05-27 04:00:13

我不确定您是否能找出谁在使用CMA区域(我自己非常想知道),但我想我已经知道如何使用debugfs了。

您要使用的/sys/kernel/debug/ CMA /cma-reserved目录中的文件包含有关CMA区域的信息,以页帧编号(PFN)和页数表示。

例如,如果您使用cat /sys/kernel/debug/cma/cma-reserved/base_pfn,您将看到CMA区域开始的物理内存地址的PFN。

同样,文件countusedmaxchunk包含为CMA区域保留的页数、当前正在使用的页数以及当前可用于分配的最大页数。将它们的内容与系统的PAGE_SIZE相乘,以获得以字节为单位的数量。

allocfree是不可读的,但您可以使用它们手动保留最大页数,并释放之前保留的任何区域,方法是:

代码语言:javascript
复制
echo X > /sys/kernel/debug/cma/cma-reserved/alloc

代码语言:javascript
复制
echo X > /sys/kernel/debug/cma/cma-reserved/free

分别使用。

bitmap是另一个可读文件,它包含...已使用或未使用页面的位图。

还可以查看:https://www.kernel.org/doc/html/latest/admin-guide/mm/cma_debugfs.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65202674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档