[rk3588 debain]cpu死锁问题解决

news/2024/9/29 15:14:49/

1 问题

        rk3588机器上运行客户如下程序程序发生“BUG: spinlock recursion on CPU#0”

./rtsp RtspWrapper.xml

        应用程序功能是:ip摄像头推流,通过rtsp协议拉流,对视频流做裁剪,缩放工作。首先,根据视频帧率每秒钟处理25张图片。其次,每张图片都会做颜色转换和缩放。最后,会根据图像里人的个数并行执行:颜色转换,裁剪,缩放。总体流程:取流,vpu解码,gpu图像处理,npu算法分析

        发生的bug日志如下所示

[WARNING] fastdeploy/runtime/backends/rknpu2/rknpu2_backend.cc(420)::InitRKNNTensorMemory       The input tensor type != model's inputs type.The input_type need FP16,but inputs[0].type is UINT8
[WARNING] fastdeploy/runtime/backends/rknpu2/rknpu2_backend.cc(420)::InitRKNNTensorMemory       The input tensor type != model's inputs type.The input_type need FP16,but inputs[0].type is UINT8
[  529.440796] BUG: spinlock recursion on CPU#0, Pose/3919
[  529.440830]  lock: 0xffffff81058a98b8, .magic: dead4ead, .owner: Pose/3919, .owner_cpu: 0
[  529.440840] CPU: 0 PID: 3919 Comm: Pose Tainted: G        W  O      5.10.160 #22
[  529.440845] Hardware name: Rockchip RK3588 IR88MX01 LP4X V10 Board (DT)
[  529.440852] Call trace:
[  529.440863]  dump_backtrace+0x0/0x1a8
[  529.440871]  show_stack+0x1c/0x24
[  529.440880]  dump_stack_lvl+0xc4/0xf0
[  529.440886]  dump_stack+0x14/0x2c
[  529.440893]  spin_bug+0x8c/0xac
[  529.440899]  do_raw_spin_lock+0x5c/0xd4
[  529.440906]  _raw_spin_lock+0x14/0x1c
[  529.440915]  rknpu_job_subcore_commit.isra.0+0x3c/0x254
[  529.440921]  rknpu_job_commit+0x54/0xa4
[  529.440927]  rknpu_job_next+0xf0/0xf4
[  529.440934]  rknpu_irq_handler.constprop.0+0x6c/0x2d4
[  529.440941]  rknpu_core0_irq_handler+0x1c/0x24
[  529.440948]  __handle_irq_event_percpu+0xd0/0x200
[  529.440954]  handle_irq_event_percpu+0x34/0x84
[  529.440959]  handle_irq_event+0x4c/0x8c
[  529.440966]  handle_fasteoi_irq+0xa8/0x124
[  529.440973]  generic_handle_irq_desc+0x10/0x18
[  529.440979]  __handle_domain_irq+0xb8/0xc0
[  529.440986]  gic_handle_irq+0x2b0/0x300
[  529.440992]  el1_irq+0xc8/0x180
[  529.440998]  rknpu_job_subcore_commit.isra.0+0x1b0/0x254
[  529.441004]  rknpu_job_commit+0x54/0xa4
[  529.441010]  rknpu_job_next+0xf0/0xf4
[  529.441017]  rknpu_job_schedule+0x210/0x220
[  529.441023]  rknpu_submit_ioctl+0x308/0x68c
[  529.441029]  __rknpu_submit_ioctl+0x44/0x64
[  529.441037]  drm_ioctl_kernel+0xa8/0xf8
[  529.441042]  drm_ioctl+0x2f4/0x33c
[  529.441050]  vfs_ioctl+0x2c/0x48
[  529.441056]  __arm64_sys_ioctl+0x64/0x94
[  529.441063]  el0_svc_common.constprop.0+0xd4/0x184
[  529.441069]  do_el0_svc+0x20/0x28
[  529.441076]  el0_svc+0x1c/0x28
[  529.441082]  el0_sync_handler+0xc8/0x14c
[  529.441088]  el0_sync+0x158/0x180
[  529.995156] rkvdec2_ccu_timeout_work:1380: fdc38100.rkvdec-core, task 746 state 0xf timeout
[  530.025518] rga3_reg: RGA3 core[1] soft reset complete.
[  530.025542] rga_job: rga request[1351] commit failed!RgaBlit(1465) RGA_BLIT fail: Device or resource busy
[  530.025546] rga: request[1351] submit failed!RgaBlit(1466) RGA_BLIT fail: Device or resource busy
[  530.025554] rga3_reg: RGA3 core[2] soft reset complete.
fd-vir-phy-hnd-format[0, (nil), (nil), 0, 0]
[  530.025600] rga_job: rga request[1353] commit failed!
rect[286, 0, 314, 988, 1920, 1088, 2560, 0]
[  530.025604] rga: request[1353] submit failed!
f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 0]
fd-vir-phy-hnd-format[0, (nil), (nil), 0, 0]
rect[0, 0, 192, 256, 192, 256, 1792, 0]
f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 0]
This output the user patamaters when rga call blit fail
srect[x,y,w,h] = [286, 0, 314, 988] src[w,h,ws,hs] = [314, 988, 1920, 1088]drect[x,y,w,h] = [0, 0, 192, 256] dst[w,h,ws,hs] = [192, 256, 192, 256]usage[0x80000]RgaBlit(1465) RGA_BLIT fail: Device or resource busyRgaBlit(1466) RGA_BLIT fail: Device or resource busy
fd-vir-phy-hnd-format[0, (nil), (nil), 0, 0]
rect[0, 0, 1920, 1088, 1920, 1088, 2560, 0]
f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 0]
fd-vir-phy-hnd-format[0, (nil), (nil), 0, 0]
rect[0, 0, 640, 640, 640, 640, 1792, 0]
f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 0]
This output the user patamaters when rga call blit fail
srect[x,y,w,h] = [0, 0, 1920, 1088] src[w,h,ws,hs] = [1920, 1088, 1920, 1088]drect[x,y,w,h] = [0, 0, 640, 640] dst[w,h,ws,hs] = [640, 640, 640, 640]

2 解决问题

        原来系统的rknpu版本为0.82,版本太低了,更新 rknpu的版本为 0.96 解决该问题,更新的代码文件如下所示。

zwzn2064@zwzn2064-CVN-Z690D5-GAMING-PRO:~/sda1/work/rknpu_096/rk3588-linux$ git status
Refresh index: 100% (199723/199723), done.
HEAD detached at origin/develop-ir88mx01-lianyun
Changes not staged for commit:(use "git add/rm <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified:   kernel/drivers/firmware/rockchip_sip.cmodified:   kernel/drivers/rknpu/Makefilemodified:   kernel/drivers/rknpu/include/rknpu_drv.hmodified:   kernel/drivers/rknpu/include/rknpu_gem.hmodified:   kernel/drivers/rknpu/include/rknpu_ioctl.hmodified:   kernel/drivers/rknpu/include/rknpu_iommu.hmodified:   kernel/drivers/rknpu/include/rknpu_job.hmodified:   kernel/drivers/rknpu/include/rknpu_mem.hmodified:   kernel/drivers/rknpu/rknpu_debugger.cmodified:   kernel/drivers/rknpu/rknpu_drv.cmodified:   kernel/drivers/rknpu/rknpu_gem.cmodified:   kernel/drivers/rknpu/rknpu_iommu.cmodified:   kernel/drivers/rknpu/rknpu_job.cmodified:   kernel/drivers/rknpu/rknpu_mem.cmodified:   kernel/drivers/rknpu/rknpu_reset.cmodified:   kernel/drivers/soc/rockchip/rockchip_opp_select.cmodified:   kernel/include/linux/rockchip/rockchip_sip.hmodified:   kernel/include/linux/version_compat_defs.hmodified:   kernel/include/soc/rockchip/rockchip_opp_select.hUntracked files:(use "git add <file>..." to include in what will be committed)kernel/drivers/rknpu/include/rknpu_devfreq.hkernel/drivers/rknpu/rknpu_devfreq.cno changes added to commit (use "git add" and/or "git commit -a")
zwzn2064@zwzn2064-CVN-Z690D5-GAMING-PRO:~/sda1/work/rknpu_096/rk3588-linux$ 

        查询 npu 版本使用命令

dmesg | grep -i rknpu


http://www.ppmy.cn/news/1531972.html

相关文章

mysql数据库:超键、候选键、主键与外键

mysql数据库&#xff1a;超键、候选键、主键与外键 1、超键&#xff08;Superkey&#xff09;2、候选键&#xff08;Candidate Key&#xff09;3、主键&#xff08;Primary Key&#xff09;4、外键&#xff08;Foreign Key&#xff09; &#x1f496;The Begin&#x1f496;点点…

数字人直播屡次违规真相曝光!有哪些技术可以有效解决?

随着数字人直播的应用频率不断升高&#xff0c;其所蕴含着的市场需求和收益潜力日渐显现&#xff0c;让其用户规模得以持续扩大的同时&#xff0c;也让不少创业者都有了找数字人源码厂商搭建数字人直播系统的计划。在此背景下&#xff0c;与数字人直播违规吗相关的各类话题和答…

Unity3D Shader的阴影部分法线效果详解

前言 在Unity3D开发中&#xff0c;阴影处理是提升场景真实感和视觉质量的重要一环。法线贴图&#xff08;Normal Mapping&#xff09;作为一种高效的纹理映射技术&#xff0c;在增强模型表面细节和凹凸感方面扮演着重要角色。本文将详细解析UnityShader中阴影部分的法线效果&a…

PHP智慧教育新篇章优校管理系统小程序源码

智慧教育新篇章 —— 优校管理系统 &#x1f680;【开篇启航&#xff1a;智慧教育的浪潮已至】 在这个日新月异的时代&#xff0c;教育也在悄然发生着变革。随着科技的飞速发展&#xff0c;智慧教育已成为教育领域的新风尚。而“优校管理系统”&#xff0c;正是这股浪潮中的佼…

游戏怎么录制?王者荣耀游戏录制指南:iOS与电脑端全面教程

在王者荣耀的战场上&#xff0c;每一个五杀、每一次极限逃生都可能成为你游戏生涯中的高光时刻。但这些瞬间往往转瞬即逝&#xff0c;如何将它们永久保存&#xff0c;成为你游戏历程中不可磨灭的印记呢&#xff1f;本文将为你揭晓答案。无论你是手持iPhone的iOS用户&#xff0c…

如何设置MySQL分布式架构主键ID,为什么不能使用自增ID或者UUID做主键?

MySQL分布式架构主键ID的设置方法 雪花算法&#xff08;Snowflake&#xff09; 原理&#xff1a;雪花算法是一种生成分布式唯一ID的算法。它由64位二进制数组成&#xff0c;结构如下&#xff1a;1位符号位&#xff08;固定为0&#xff09; 41位时间戳&#xff08;表示从一个固…

2024最新!!Java后端面试题(3)看这一篇就够了!!

hello uu们 感谢收看&#xff01;&#xff01;&#xff01;&#xff01;我最近听了一首歌《21》&#xff0c;真的很感慨&#xff0c;马上步入20的我也感觉时间真的飞快...望大家都能过上理想的生活&#xff0c;不负内心的所托... 正如人民日报所言&#xff0c;“请你努力&…

Qt网络通信之TCP

前言 Qt中的TCP通信还是比较简单的&#xff0c;它基于QTcpSocket和QTcpServer这两个类。 正文 直接看图 服务器端选择好监听地址和端口号后就直接开始监听 客户端选择相应的服务器地址和端口进行TCP连接 连接成功 在输入框输入信息可以实现服务器端和客户端的相互通信&am…