现象:使用 mpv播放视频时,播放一段时间后内核core
环境:
linux sdk版本:4.19.172 ubuntu18系统
验证:
1. /etc/mpv/mpv.conf 默认配置vo=xv 播放一段时间后,内核core
2. /etc/mpv/mpv.conf vo=gpu播放稳定,不会出现dmp
初步怀疑时rk3399该版本的内核驱动存在缺陷导致的。反汇编崩溃在for_each_old_plane_int_state(old_state, plane, old_plane_state, i)位置,增加old_state == NULL,崩溃点转移
在崩溃日志往前查找,发现崩溃前触发了几次WARN_ON
找供应商要了最新的SDK4.19.252比对了下相应的代码,确认最新的代码对该问题进行了修复,在commit_planes的时候增加锁操作。
mutex_lock(&prv->ovl_lock);
drm_atomic_helper_commit_planes(dev, state, true);
mutex_unlock(&prv->ovl_lock);