[rk3588 debain]cpu死锁问题解决
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
相关文章:
[rk3588 debain]cpu死锁问题解决
1 问题 rk3588机器上运行客户如下程序程序发生“BUG: spinlock recursion on CPU#0” ./rtsp RtspWrapper.xml 应用程序功能是:ip摄像头推流,通过rtsp协议拉流,对视频流做裁剪,缩放工作。首先,根据视频帧率每秒钟处理…...
CMU 10423 Generative AI:lec18(大模型的分布式训练)
这个文档主要讲解了分布式训练(Distributed Training),特别是如何在多GPU上训练大规模的语言模型。以下是主要内容的概述: 1. 问题背景 训练大规模语言模型的主要挑战是内存消耗。 训练过程中,内存消耗主要来源于两个…...
项目级别的配置文件 `.git/config`||全局配置文件 `~/.gitconfig`
Git 项目级别的配置文件 .git/config,该文件包含了当前项目(仓库)的特定配置。 与全局配置文件 ~/.gitconfig 不同,这里的设置仅对当前项目生效。 配置内容解释 [core]repositoryformatversion 0filemode truebare falselog…...
【Docker】配置文件
问题 学习Docker期间会涉及到docker的很多配置文件,可能会涉及到的会有: /usr/lib/systemd/system/docker.service 【docker用于被systemd管理的配置文件】 /etc/systemd/system/docker.service.d【覆盖配置文件的存放处】 /etc/systemd/system/mul…...
坐标系变换总结
二维情况下的转换 1 缩放变换 形象理解就是图像在x方向和y方向上放大或者缩小。 代数形式: { x ′ k x x y ′ k y y \begin{cases} x k_x x \\ y k_y y \end{cases} {x′kxxy′kyy 矩阵形式: ( x ′ y ′ ) ( k x 0 0 k y ) ( x y ) \be…...
数据在内存中的存储【上】
一.整型在内存中的存储 在讲解操作符的时候,我们就讲过了下面的内容: 整数的2进制表示方法有三种,即 原码、反码和补码 有符号的整数,三种表示方法均有符号位和数值位两部分,符号位都是用0表示"正"ÿ…...
Prometheus之Pushgateway使用
Pushgateway属于整个架构图的这一部分 The Pushgateway is an intermediary service which allows you to push metrics from jobs which cannot be scraped. The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. S…...
Rust Web开发常用库
本集合中所有库都是在开源项目中广泛使用且在2024年积极维护的库,排名靠前的库是当前使用比较广泛的,不全面但够用 Rust异步运行时 tokio:异步运行时 async_std:与标准库兼容性较强的运行时 monoio:字节开源 smol…...
ios内购支付-支付宝APP支付提现
文章目录 前言一、IOS内购支付(ios订单生成自己写逻辑即可)1.支付回调票据校验controller1.支付回调票据校验server 二、安卓APP支付宝支付1.生成订单返回支付宝字符串(用于app拉起支付宝,这里用的是证书模式)2.生成订…...
新课发布|鸿蒙HarmonyOS Next商城APP应用开发实战
2024年年初,鸿蒙HarmonyOS Next星河版强势发布,随着鸿蒙系统的普及和应用场景的拓展,市场需求将持续增加。鸿蒙系统已经应用于华为的智能手机、平板电脑、智能家居等多个领域,并有望在未来拓展到智能汽车、物联网等更多领域。这为…...
基于Java,SpringBoot,Vue智慧校园健康驿站体检论坛请假管理系统
摘要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差…...
【数据分享】2001-2023年我国省市县镇四级的逐月平均气温数据(免费获取/Shp/Excel格式)
之前我们分享过1901-2023年1km分辨率逐月平均气温栅格数据,该数据来源于国家青藏高原科学数据中心。为方便大家使用,我们还基于上述平均气温栅格数据将数据处理为Shp和Excel格式的省市县三级逐月平均气温数据(可查看之前的文章获悉详情&#…...
c#代码介绍23种设计模式_16迭代器模式
目录 1、迭代器模式的介绍 2、迭代器模式的定义 3、迭代器模式的结构 4、代器模式角色组成 5、迭代器实现 6、迭代器模式的适用场景 7、迭代器模式的优缺点 8、.NET中迭代器模式的应用 9、实现思路 1、迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言…...
408算法题leetcode--第23天
236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先\思路:递归,如注释时间和空间:O(n) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) …...
帝国CMS系统开启https后,无法登陆后台的原因和解决方法
今天本地配置好了帝国CMS7.5,传去服务器后,使用http访问一切正常。但是当开启了https(SSL)后,后台竟然无法登陆进去了。 输入账号密码后,点击登陆,跳转到/e/admin/ecmsadmin.php就变成页面一片…...
根据视频id查询播放量
声明:文章仅用于学习交流,如有侵权请联系删除 如何根据视频ID查询视频的播放数量 在数字化时代,视频内容的消费已成为人们日常生活的重要组成部分。无论是社交媒体平台上的短视频,还是视频分享网站上的长视频,了解视频的播放数量…...
初始爬虫11
1.斗鱼selenium爬取 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By import timeclass Douyu(object):def __init__(self):self.url https://www.douyu.com/directory/allself.driver webdriver.Chrome()self.driver…...
SSY20241002提高组T4题解__纯数论
题面 题目描述 有一天 p e o p 1 e peop1e peop1e 学长梦到了一个丑陋的式子: ∑ i 1 n ( ∑ m 1 R F m ) ! i ! ∑ l 0 i ∑ j 0 ∑ t 1 R F t { K i − l } l ! { i ∑ w 1 R F w − j } j ! \sum_{i1}^n (\sum_{m1}^R F_m)!\times i!\times \sum_{l…...
Python:lambda 函数详解 以及使用
一、lambda 语法 lambda 函数的语法只包含一个语句,表现形式如下: lambda [arg1 [,arg2,.....argn]]:expression 其中,lambda 是 Python 预留的关键字,[arg…] 和 expression 由用户自定义。 具体如下: [arg…] 是参数列表&#…...
【C++】空指针和野指针
文章目录 1.空指针2.野指针总结 1.空指针 概念:指针变量指向内存中编号为0的空间。 用途:初始化指针变量。 注意:空指针指向的内存是不可以访问的。 示例: int main(){//指针变量p指向内存地址编号为0的空间int *PNULL&#…...
短视频 SEO 推广与视频广告投放的区别是什么_短视频 SEO 优化需要结合网站整体 SEO 策略吗
短视频 SEO 推广与视频广告投放的区别是什么_短视频 SEO 优化需要结合网站整体 SEO 策略吗 在当前数字化营销的浪潮中,短视频平台和视频广告投放已经成为许多企业和创作者推广内容、吸引观众的重要手段。对于SEO策略的理解和应用却常常存在误解。今天,我…...
终极窗口管理指南:如何让重要窗口始终置顶提升3倍工作效率
终极窗口管理指南:如何让重要窗口始终置顶提升3倍工作效率 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否曾经在视频会议时,会议窗口突然被弹出的…...
树莓派5新手避坑:用L298N驱动直流电机,从接线到代码的保姆级教程
树莓派5与L298N电机驱动实战:从硬件搭建到PWM调速的深度解析 第一次用树莓派控制直流电机时,我盯着桌上散落的杜邦线和L298N模块,突然意识到自己可能低估了这个看似简单的项目。为什么电机时而抽搐时而静止?为什么PWM调速总是不稳…...
2026届必备的五大AI辅助论文助手实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 基于大语言模型与自然语言处理技术的 AI 写作软件,是内容生产领域新兴工具&…...
别再只查‘待办’了!Flowable任务查询的三种高级场景:拾取、归还与候选组权限控制详解
Flowable任务管理的三大高阶场景:从候选池到个人待办的完整控制策略 当我们在处理业务流程自动化时,任务管理往往是最容易被简化的环节。大多数开发者止步于基础的待办列表查询,却忽视了任务流转过程中的精细控制。本文将带您深入Flowable任务…...
ai辅助cad开发:让快马平台的kimi模型帮你思考和编写参数化设计代码
AI辅助CAD开发:让快马平台的Kimi模型帮你思考和编写参数化设计代码 最近在做一个参数化齿轮生成器的项目,发现用传统方式开发效率很低。后来尝试用InsCode(快马)平台的AI辅助功能,整个过程变得轻松多了。这里分享下我的开发经验,…...
AI辅助架构设计:让快马平台智能规划trae状态管理方案
用AI辅助设计trae状态管理方案:以博客后台系统为例 最近在开发一个博客后台管理系统时,遇到了状态管理的难题。系统需要处理文章列表、编辑草稿、用户评论和系统设置等多种数据,如何合理组织这些状态让我头疼不已。幸运的是,在In…...
十分钟用快马AI搭建中科院期刊分区查询工具原型
最近在帮实验室整理投稿期刊清单时,发现中科院分区查询是个高频需求。每次都要登录官网、输入验证码、反复跳转页面,特别影响效率。于是想做个简易查询工具,正好用InsCode(快马)平台试试快速原型开发,没想到十分钟就搭出了可用版本…...
深入解析单片机通信协议:1-Wire与UART的实战应用
1. 1-Wire协议:从DHT11温湿度传感器说起 第一次接触1-Wire协议是在一个智能农业项目中,当时需要低成本监测大棚温湿度。DHT11这个20块钱的小模块让我印象深刻——只需要一根数据线就能同时传输温度和湿度数据。这种单线通信的神奇之处在于,它…...
Pixel Epic智识终端效果展示:跨领域研报生成一致性与专业性验证
Pixel Epic智识终端效果展示:跨领域研报生成一致性与专业性验证 1. 产品概览与核心价值 Pixel Epic智识终端是一款基于AgentCPM-Report大模型构建的专业研究报告生成工具。与传统AI工具不同,它创新性地采用了像素RPG游戏的美学设计,将枯燥的…...
