
征程 6 VIO 通路断流分析
自动驾驶场景中,常见的是多路感知通路,在不考虑应用获取释放帧异常操作的前提下,一般出现帧获取异常的情况,主要原因是通路中某段断流的情况,如何去准确的定位,对大部分客户来说,依赖我司的支持;针对这种情况,会列举几种断流日志分析;
·
自动驾驶场景中,常见的是多路感知通路,在不考虑应用获取释放帧异常操作的前提下,一般出现帧获取异常的情况,主要原因是通路中某段断流的情况,如何去准确的定位,对大部分客户来说,依赖我司的支持;针对这种情况,会列举几种断流日志分析;
场景一:11V 环视 yuv 场景,多进程反复启停
现象:应用程序报 get data failed
logcat 日志
E/ (597844): [362063.125000][vpf_ioctl.c]:[vio_dev_node_dqbuf_poll][1012]dev poll Timeout(4000): 0, Success
I/ (597844): [362063.125000][vpf_ioctl.c]:[vio_dbg_log_show][964]
I/ (597844): [S6] vin1_C3*-otf-isp1_C5*-otf-ynr1_C5-otf-pym1_C5(dma)
I/ (597844): gtask-vin1: res 1 rcnt 0 [vin1:0]
I/ (597844): gtask-isp1: res 0 rcnt 0 [isp1:0][ynr1:0][pym1:0]
I/ (597844):
I/ (597844):
I/ (597844): [362063.125000][vpf_ioctl.c]:[vio_dbg_log_show][964]
I/ (597844): ----------------------------------------------------------
I/ (597844): flowid module cid chn FREE REQ PRO COM USED
I/ (597844): ----------------------------------------------------------
I/ (597844): 6 vin1 3 0 16 0 0 0 0
I/ (597844): 6 vin1 3 8 16 0 0 0 0
I/ (597844):
I/ (597844): 6 isp1 5 0 0 0 0 0 2
I/ (597844): 6 isp1 5 8 16 0 0 0 0
I/ (597844):
I/ (597844): 6 ynr1 5 0 16 0 0 0 0
I/ (597844): 6 ynr1 5 1 16 0 0 0 0
I/ (597844): 6 ynr1 5 8 16 0 0 0 0
I/ (597844):
I/ (597844): 6 pym1 5 0 16 0 0 0 0
I/ (597844): 6 pym1 5 8 0 5 0 0 0
I/ (597844):
E/ (597844): [362063.125000][hbn_vpf_interface.c]:[hbn_vnode_getframe_group][2154]pym1 ctx 5 dqbuf failed COMMON dequeue buffer error
E/ (597844): [362063.125000][pym.c]:[pym_entity_get_buf][787]pipe:6 user already got 0 buffers
E/ (597844): [362063.125000][pym.c]:[pym_entity_get_buf][788]Pipe(6)Pym 1 get cap buf failed pipe_state:3
E/ (597844): [362063.125000][vpm_pipeline.c]:[vio_pipeline_get_data][1763]Pipe:6 pym get buf failed type:22
E/VPS_TEST(597844): [362063.142697][TEST_LOG vps_test_src.c:1753] hb_vio_get_data pipe 6 failed, ret=-6028
- 从上述日志分析可知
- 通路信息 [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 日志
E/ ( 2006): [8511.584961][vpf_ioctl.c]:[vio_dev_node_dqbuf_poll][1012]dev poll Timeout(4000): 0, Success
I/ ( 2006): [8511.584961][vpf_ioctl.c]:[vio_dbg_log_show][964]
I/ ( 2006): [S7] vin4_C0*-m2m-(dma)pym1_C4*(dma)
I/ ( 2006): gtask-vin4: res 1 rcnt 0 [vin4:0]
I/ ( 2006): gtask-pym1: res 1 rcnt 0 [pym1:0]
I/ ( 2006): [8511.584961][vpf_ioctl.c]:[vio_dbg_log_show][964]
I/ ( 2006): ----------------------------------------------------------
I/ ( 2006): flowid module cid chn FREE REQ PRO COM USED
I/ ( 2006): ----------------------------------------------------------
I/ ( 2006): 7 vin4 0 0 16 0 0 0 0
I/ ( 2006): 7 vin4 0 8 0 6 0 0 0
I/ ( 2006):
I/ ( 2006): 7 pym1 4 0 10 0 0 0 6
I/ ( 2006): 7 pym1 4 8 0 5 0 0 0
I/ ( 2006):
E/ ( 2006): [8511.584961][hbn_vpf_interface.c]:[hbn_vnode_getframe_group][2154]pym1 ctx 4 dqbuf failed COMMON dequeue buffer error
E/ ( 2006): [8511.584961][pym.c]:[pym_entity_get_buf][787]pipe:7 user already got 0 buffers
E/ ( 2006): [8511.584961][pym.c]:[pym_entity_get_buf][788]Pipe(7)Pym 1 get cap buf failed pipe_state:3
E/ ( 2006): [8511.584961][vpm_pipeline.c]:[vio_pipeline_get_data][1763]Pipe:7 pym get buf failed type:22
- 从上述日志分析可知
- 通路信息 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 左右的内核日志
[ 8426.666910] [I|SEN|camera_dev.c+711]:[SENSOR10]: sensor_frame_event_record 1 -4234.506ms fe
[ 8426.708832] [I|SEN|camera_dev.c+658]:[SENSOR10]: sensor_frame_event_record 1 --------- fs
[ 8508.072761] [A][time_1 :8508 s, 59 ms] FCHM Int occur (14, 34, 511)
[ 8508.072772] [CIM stl]:[I|CIM|hobot_cim_stl.c+2033]: cim_stl_handler_cb: begin hw_id 4
[ 8508.072782] [CIM stl]:[I|CIM|hobot_cim_stl.c+2072]: cim_stl_handler_cb: done hw_id 4
[ 8508.072784] [A][time_2 :8508 s, 59 ms] [K] Rcv_Occur_msg: 20-10-NCF-Occur (14, 34, 511)payload(1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
[ 8508.072848] [A][time_4 :8508 s, 59 ms] [K] Ack from Rcore recv_Occur_msg: 20-10-NCF-Occur (14, 34, 511)
[ 8508.072862] [diag_ncf_event_ipc_send:447]hb_ipc_send succ! moduleid:20, eventid:10
[ 8508.072865] [A][time_5 :8508 s, 59 ms] [K] Rcv_Fixed_msg: 20-10-NCF-Fixed (14, 34, 511)payload(1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
[ 8508.072924] [A][time_7 :8508 s, 59 ms] [K] Ack from Rcore recv_Fixed_msg: 20-10-NCF-Fixed (14, 34, 511)
[ 8508.072936] [diag_ncf_event_ipc_send:447]hb_ipc_send succ! moduleid:20, eventid:10
[ 8508.576078] [A][time_1 :8508 s, 562 ms] FCHM Int occur (14, 34, 512)
[ 8508.576091] [CIM stl]:[I|CIM|hobot_cim_stl.c+2033]: cim_stl_handler_cb: begin hw_id 4
[ 8508.576101] [CIM stl]:[I|CIM|hobot_cim_stl.c+2072]: cim_stl_handler_cb: done hw_id 4
[ 8508.576105] [A][time_2 :8508 s, 562 ms] [K] Rcv_Occur_msg: 20-10-NCF-Occur (14, 34, 512)payload(1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
[ 8508.576173] [A][time_4 :8508 s, 562 ms] [K] Ack from Rcore recv_Occur_msg: 20-10-NCF-Occur (14, 34, 512)
[ 8508.576188] [diag_ncf_event_ipc_send:447]hb_ipc_send succ! moduleid:20, eventid:10
[ 8508.576191] [A][time_5 :8508 s, 562 ms] [K] Rcv_Fixed_msg: 20-10-NCF-Fixed (14, 34, 512)payload(1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
[ 8508.576251] [A][time_7 :8508 s, 562 ms] [K] Ack from Rcore recv_Fixed_msg: 20-10-NCF-Fixed (14, 34, 512)
- 通过以上日志可知:
- (14, 34, xxx),是 CIM 侧监听报错,代表 200ms 没有数据流进入 CIM 处理,出现这种情况有 2 种可能:
- SENSOR 断流
- CIM 输入通道关闭
- 再根据出错的上文,没发现有 ipi drop timeout 报错,确认是 CIM 通道关闭导致的;
- (14, 34, xxx),是 CIM 侧监听报错,代表 200ms 没有数据流进入 CIM 处理,出现这种情况有 2 种可能:
据流进入 CIM 处理,出现这种情况有 2 种可能:
- SENSOR 断流
- CIM 输入通道关闭
- 再根据出错的上文,没发现有 ipi drop timeout 报错,确认是 CIM 通道关闭导致的;
因此需要检查 CIM 侧配置,跳帧配置有问题会导致 CIM 侧输入通道一直处于关闭状态;
更多推荐
所有评论(0)