Skip to content

mpi->reset(ctx) 卡死 #770

Open
Open
@denghengli

Description

1、软件版本:
mpp:1.0.7
kernel:5.10
处理器:rk3568

2、应用场景
(1)一个nvrd程序 从摄像头拉取视频流进行解码-->编码-->rtsp推流,同时处理2-3路摄像头
(2)一个界面程序(QT)播放某一通道摄像头的实时视频,通道可以切换,在切换时会调用reset复位解码器然后重新再打开解码器 以解码下一通道的视频

3、问题描述
在调用reset复位解码器时会出现卡死在这个接口中,卡死前后内核会报如下信息:
[ 1291.865631] mpp_rkvdec2 fdf80200.rkvdec: reset done
[ 1291.865705] mpp_rkvdec2 fdf80200.rkvdec: resend task 62867
[ 1291.865753] mpp_rkvdec2 fdf80200.rkvdec: resend task 62868
[ 1291.865773] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1291.865788] mpp_rkvdec2 fdf80200.rkvdec: resend task 62869
[ 1291.865803] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1291.865815] mpp_rkvdec2 fdf80200.rkvdec: resend task 62870
[ 1291.865827] mpp_rkvdec2 fdf80200.rkvdec: resend task 62871
[ 1291.865840] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1291.865852] mpp_rkvdec2 fdf80200.rkvdec: resend task 62872
[ 1291.865865] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1291.865877] mpp_rkvdec2 fdf80200.rkvdec: resend task 62873
[ 1291.865889] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1291.865901] mpp_rkvdec2 fdf80200.rkvdec: resend task 62874
[ 1291.865916] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1291.865931] mpp_rkvdec2 fdf80200.rkvdec: resend task 62875
[ 1292.369591] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 62875 state 0x14f timeout, cnt 9
[ 1292.369650] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 0 state 0x4c timeout, cnt 10
[ 1292.369662] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 62874 state 0x14f timeout, cnt 11
[ 1292.369676] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 0 state 0x4c timeout, cnt 12
[ 1292.369686] mpp_rkvdec2 fdf80200.rkvdec: session 14 task 62873 state 0x14f timeout, cnt 13
[ 1292.369697] mpp_rkvdec2 fdf80200.rkvdec: session 14 task 0 state 0x4c timeout, cnt 14
[ 1292.369708] mpp_rkvdec2 fdf80200.rkvdec: session 60 task 62872 state 0x14f timeout, cnt 15
[ 1292.369718] mpp_rkvdec2 fdf80200.rkvdec: session 60 task 0 state 0x4c timeout, cnt 16
[ 1292.369729] mpp_rkvdec2 fdf80200.rkvdec: session 13 task 62871 state 0x14f timeout, cnt 17
[ 1292.369745] mpp_rkvdec2 fdf80200.rkvdec: session 16 task 62870 state 0x14f timeout, cnt 18
[ 1292.369760] mpp_rkvdec2 fdf80200.rkvdec: session 16 task 0 state 0x4c timeout, cnt 19
[ 1292.369774] mpp_rkvdec2 fdf80200.rkvdec: session 60 task 62869 state 0x14f timeout, cnt 20
[ 1292.369788] mpp_rkvdec2 fdf80200.rkvdec: session 60 task 0 state 0x4c timeout, cnt 21
[ 1292.369802] mpp_rkvdec2 fdf80200.rkvdec: session 13 task 62868 state 0x14f timeout, cnt 22
[ 1292.369815] mpp_rkvdec2 fdf80200.rkvdec: session 13 task 62867 state 0x14f timeout, cnt 23
[ 1292.369824] mpp_rkvdec2 fdf80200.rkvdec: session 13 task 62867 timeout 1 abort 0 force_dequeue 0
[ 1292.369830] mpp_rkvdec2 fdf80200.rkvdec: resetting...
[ 1292.371052] rk_iommu fdf80800.iommu: Error during raw reset. MMU_DTE_ADDR is not functioning
[ 1292.371244] mpp_rkvdec2 fdf80200.rkvdec: reset done
[ 1292.371336] mpp_rkvdec2 fdf80200.rkvdec: resend task 62868
[ 1292.371415] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1292.371447] mpp_rkvdec2 fdf80200.rkvdec: resend task 62869
[ 1292.371476] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1292.371503] mpp_rkvdec2 fdf80200.rkvdec: resend task 62870
[ 1292.371530] mpp_rkvdec2 fdf80200.rkvdec: resend task 62871
[ 1292.371562] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1292.371591] mpp_rkvdec2 fdf80200.rkvdec: resend task 62872
[ 1292.371618] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1292.371647] mpp_rkvdec2 fdf80200.rkvdec: resend task 62873
[ 1292.371675] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1292.371702] mpp_rkvdec2 fdf80200.rkvdec: resend task 62874
[ 1292.371726] mpp_rkvdec2 fdf80200.rkvdec: resend task 0
[ 1292.371752] mpp_rkvdec2 fdf80200.rkvdec: resend task 62875
[ 1292.481210] rk_gmac-dwmac fe2a0000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 1292.876198] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 62876 state 0x14f timeout, cnt 24
[ 1292.876251] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 0 state 0x4c timeout, cnt 25
[ 1292.876262] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 62875 state 0x14f timeout, cnt 26
[ 1292.876272] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 0 state 0x4c timeout, cnt 27
[ 1292.876281] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 62874 state 0x14f timeout, cnt 28
[ 1292.876289] mpp_rkvdec2 fdf80200.rkvdec: session 15 task 0 state 0x4c timeout, cnt 29
[ 1292.876298] mpp_rkvdec2 fdf80200.rkvdec: session 14 task 62873 state 0x14f timeout, cnt 30
[ 1292.876306] mpp_rkvdec2 fdf80200.rkvdec: session 14 task 0 state 0x4c timeout, cnt 31
[ 1292.876314] mpp_rkvdec2 fdf80200.rkvdec: session 60 task 62872 state 0x14f timeout, cnt 32
[ 1292.876322] mpp_rkvdec2 fdf80200.rkvdec: session 60 task 0 state 0x4c timeout, cnt 33
[ 1292.876330] mpp_rkvdec2 fdf80200.rkvdec: session 13 task 62871 state 0x14f timeout, cnt 34
[ 1292.876338] mpp_rkvdec2 fdf80200.rkvdec: session 16 task 62870 state 0x14f timeout, cnt 35
[ 1292.876346] mpp_rkvdec2 fdf80200.rkvdec: session 16 task 0 state 0x4c timeout, cnt 36
[ 1292.876354] mpp_rkvdec2 fdf80200.rkvdec: session 60 task 62869 state 0x14f timeout, cnt 37
[ 1292.876362] mpp_rkvdec2 fdf80200.rkvdec: session 60 task 0 state 0x4c timeout, cnt 38
[ 1292.876369] mpp_rkvdec2 fdf80200.rkvdec: session 13 task 62868 state 0x14f timeout, cnt 39
[ 1292.876392] mpp_rkvdec2 fdf80200.rkvdec: session 13 task 62868 timeout 1 abort 0 force_dequeue 0
[ 1292.876401] mpp_rkvdec2 fdf80200.rkvdec: resetting...
[ 1292.877536] rk_iommu fdf80800.iommu: Error during raw reset. MMU_DTE_ADDR is not functioning
[ 1292.877552] mpp_rkvdec2 fdf80200.rkvdec: reset done

这问题卡了一段时间了,实在是没有思路了,来此请教下:
(1)这种 timeout 是啥原因导致呢,mpp解码器解码不过来了?
(2)多个实例同时解码时,复位某一路解码器时会影响其他路解码器吗
(3)有啥解决建议呢

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions