新闻  |   论坛  |   博客  |   在线研讨会
征程 6 VIO通路断流分析
地平线开发者 | 2025-04-20 22:07:14    阅读:23   发布文章

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

场景一:11V 环视 yuv 场景,多进程反复启停

现象:应用程序报 get data failed

img

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

img

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)

通过以上日志可知:

        因此需要检查 CIM 侧配置,跳帧配置有问题会导致 CIM 侧输入通道一直处于关闭状态;


        *博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

        参与讨论
        登录后参与讨论
        推荐文章
        最近访客