1. Hd_common
1.1 Cma 含义
问:Cma0、
DSP_cma0、dsp_cma1内存的意思,这部分内存可以被
arm应用使用吗?
回答:
●cma0:hdal驱动可以使用的连续内存。
●dsp_cma0:为 CEVA DSP1 保留的连续内存。
●dsp_cma1:为 CEVA DSP2 保留的连续内存。
●cma0,dsp_cma0 和 dsp_cma1 这些内存也由
linux OS 管理。
如果 dsp 没有打开,dsp_cma0 和 dsp_cma1 也会被 Linux OS 使用,内存可以分配给
用户空间进程。 注意:内存布局 /* Linux 系统内存区域*/ <0x00000000 0x12800000> 应该包含 cma0、dsp_cma0、dsp_cma1 这三个区域。 用户可以参考第 1.1 章的更详细的描述。
1.2 如何分析Cma使用情况
●命令“cat /proc/m
EMInfo”检查 CmaTotal 和 CmaFree 大小。
●确认各个cma区的使用状态:
root@NVTEVM:~$ cd /sys/
kernel/debug/cma/ root@NVTEVM: /sys/kernel/debug/cma$ ls alloc cma-0 cma-1 cma-2 free root@NVTEVM: /sys/kernel/debug/cma$ cd cma-0/ root@NVTEVM: /sys/kernel/debug/cma/cma-0$ ls Alloc bitmap free order_per_bit
使用的 Base_pfn 计数 maxchunk
●位图代表内存使用图:一个位代表一个pageroot@NVTEVM:/sys/kernel/debug/cma/cma-0$ cat bitmap 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 => 11(二进制)
●最大块大小 root@NVTEVM: /sys/kernel/debug/cma/cma-0$ cat maxchunk 2043 => 最大块大小为 2043 页。
●使用的页面:root@NVTEVM: /sys/kernel/debug/cma/cma-0$ cat u
SED 5 => 5 page used
●总页数:root@NVTEVM: /sys/kernel/debug/cma/cma-0$ cat count 2048 => 总页数 2048
1.3 Mmap失败问题:
当
UART1 日志显示错误时如何调试如下:
ERR: [COMMON][hd_common_mem_mmap():]: mmap 失败?
回答:
●检查地图大小输入是否正确?
●检查是否映射了很多内存而忘记使用 hd_common_mem_munmap() 来取消映射未使用的内存? 可以使用命令“cat /proc/$PID/maps”来检查进程映射内存。
请检查映射内存区域是否合理?
1.4 获取块失败
如果 ERR STATUS 在“Get blk fail”字段中有一些非零值,这意味着某些
模块无法从公共池中获取空闲缓冲区。用户有两种方法来调整缓冲区计数。
●如果内存足够大,可以先把public pool的每个Blkcnt多分配一点,然后用“cat /proc/hdal/comm/info”看看实际的buffer数应该是多少。您可以使用 MinFree 信息来确定最多使用了多少缓冲区。 (值 BlkCnt 减去 MinFree)应该是缓冲需求块的实际数量。
●如果内存不足以分配更多的 Blkcnt 给公共池。用户可以通过输入命令“echo nvtmpp showmsg 1 > /proc/hdal/comm/cmd”开启调试模式,当get block失败时会转储当前buffer的使用情况,可以分析是否占用blocks模块是
合理的。当get block失败时,会重复dump buffer info status,只取第一次dump的消息。第二条消息可以忽略,因为这是由于转储了太多消息造成的。
●在 N
VR 中,hd_common_mem_get_block api 只支持从 /proc/
videograph/ms/fixed 中的 pool 中获取 blk,并且可以使用 cat proc/videograph/ms/fixed/pool_node 来获取单个 pool 使用情况或 cat /proc/videograph/user_buf_info获取所有 blk 使用情况。
更多详细内容请下载附件查看