CMA Debugfs 接口

CMA Debugfs 接口可用于获取不同 CMA 区域的基本信息,并测试每个区域的分配/释放功能。

每个 CMA 区域在 <debugfs>/cma/ 下表示一个目录,以其 CMA 名称表示,如下所示

<debugfs>/cma/<cma_name>

在该目录下创建的文件结构如下

  • [只读] base_pfn: CMA 区域的基准 PFN(页帧号)。

    这与 ranges/0/base_pfn 相同。

  • [只读] count: CMA 区域中的内存量。

  • [只读] order_per_bit: 一个位表示的页顺序。

  • [只读] bitmap: 该区域中已分配页的位图。

    这与 ranges/0/base_pfn 相同。

  • [只读] ranges/N/base_pfn: CMA 区域中连续范围 N 的基准 PFN。

    在CMA区域内。

  • [只读] ranges/N/bitmap: CMA 区域中

    范围 N 中已分配页的位图。

  • [只写] alloc: 从该 CMA 区域分配 N 页。例如

    echo 5 > <debugfs>/cma/<cma_name>/alloc
    

会尝试从 'cma_name' 区域分配 5 页。

  • [只写] free: 从该 CMA 区域释放 N 页,与上述类似。