征程 6 VIO 通路断流分析

自动驾驶场景中,常见的是多路感知通路,在不考虑应用获取释放帧异常操作的前提下,一般出现帧获取异常的情况,主要原因是通路中某段断流的情况,如何去准确的定位,对大部分客户来说,依赖我司的支持;针对这种情况,会列举几种断流日志分析;
场景一:11V 环视 yuv 场景,多进程反复启停
现象:应用程序报 get data failed

logcat 日志
从上述日志分析可知
通路信息 [S6] vin1_C3*-otf-isp1_C5*-otf-ynr1_C5-otf-pym1_C5(dma):出错通路的链路信息是 sensor-cim1-online-isp1-online-ynr1-online-pym1-ddr;
pym1 输出通道 buffer 5 都在 request 队列,可知 PYM 侧未收到数据;
vin1 输入输出通道的 buffer 都在 free 队列,可知 CIM 侧未收到数据;
已知 CIM 侧未接收到数据,因此检查 sensor 侧配置或者 deserializer link 状态;
场景二:环视 YUV-CIM-DDR-PYM 跳帧场景
现象:应用程序报 get data failed

logcat 日志
从上述日志分析可知
通路信息 vin4_C0*-m2m-(dma)pym1_C4*(dma): 出错通路的链路信息是 sensor-cim4-ddr-pym4-ddr;
gtask-pym1: res 1 rcnt 0 [pym1:0]: res 1 代表 PYM 硬件资源未被使用,PYM 处于空闲状态;
VIN4 输出通道的 buffer 都在 request 队列,确实是 CIM 侧断流;
dmesg 日志
上层出现 timeout 的时间点是 8511.58s,timeout 时间是 4s,所以查看 8507.58s 左右的内核日志
通过以上日志可知:
(14, 34, xxx),是 CIM 侧监听报错,代表 200ms 没有数据流进入 CIM 处理,出现这种情况有 2 种可能:
SENSOR 断流
CIM 输入通道关闭
再根据出错的上文,没发现有 ipi drop timeout 报错,确认是 CIM 通道关闭导致的;
因此需要检查 CIM 侧配置,跳帧配置有问题会导致 CIM 侧输入通道一直处于关闭状态;
评论