多次调用VPC触发硬件保护机制,导致VPC所有引擎不可用
现象描述
代码存在bug的情况下,在调试过程中连续调用VPC模块处理失败,查看日志有如下类似错误信息:
p_engine_para->fail_count< (15)
修复代码bug后,VPC处理仍然失败,需重启昇腾处理器才能恢复。
除了VPC模块,DVPP其他模块也存在这个问题,即出现"p_engine_para->fail_count< (15)"的错误打印,都需要重启昇腾处理器才能恢复。
可能原因
对于VPC模块,可能由于内存地址异常,多次调用VPC,触发硬件保护机制,导致VPC所有引擎不可用。
DVPP其他模块可能是由于码流或者参数配置有问题。
定位思路
对于VPC模块,检查VPC输入输出内存在调用VPC处理之前是否已经释放,是否变成野指针在使用。
对于DVPP其他模块,检查码流和参数配置是否正确。
处理步骤
- 检查输出地址是否存在野指针情况,以及检查码流和参数配置是否正确。
例如:将JPEGD的输出内存作为VPC的输入内存时,这个内存释放应该在VPC之后,不能在调用JPEGD之后就进行释放,导致VPC输入内存地址成为野指针。
- 重启系统。
