[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&#…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
