系统卡死问题分析
CPU模式
CPU Frequency Scaling (CPUFREQ)
Introduction
CPU频率调节设备驱动程序的功能。该驱动程序允许在运行过程中更改CPU的时钟频率。一旦CPU频率被更改,必要的电源供应电压也会根据设备树脚本(DTS)中定义的电压值进行变化。通过降低时钟速度,这种方法可以减少功耗(从而节省电池电量),因为CPU在时钟速度降低时使用的功率较少。
Software Operation
这段内容描述了CPUFREQ设备驱动程序的功能和工作原理。
CPUFREQ设备驱动程序被设计用于实时改变CPU的频率和电压。如果DTS(设备树结构)中没有定义频率,在这种情况下,CPUFREQ驱动程序会将CPU频率更改为最接近的更高频率。频率的变化是通过使用时钟框架API来实现的,而电压则是通过调节器API进行设置的。
CPU频率数组中的频率基于引导CPU的频率。此外,该驱动程序使用交互式CPU频率调度器(governor),该调度器不允许手动更改。如果需要手动更改CPU频率,可以使用用户空间CPU频率调度器。
在Linux中,内核的开发者定义了一套框架模型来完成CPU频率动态调整这一目的,它就是CPU Freq系统。如下为CPU的几种模式(governor参数):
ondemand:系统默认的超频模式,按需调节,内核提供的功能,不是很强大,但有效实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。一般官方内核默认的方式都是ondemand。
interactive:交互模式,直接上最高频率,然后看CPU负荷慢慢降低,比较耗电。Interactive 是以 CPU 排程数量而调整频率,从而实现省电。InteractiveX 是以 CPU 负载来调整 CPU 频率,不会过度把频率调低。所以比 Interactive 反应好些,但是省电的效果一般。
conservative:保守模式,类似于ondemand,但调整相对较缓,想省电就用他吧。Google官方内核,kang内核默认模式。
smartass:聪明模式,是I和C模式的升级,该模式在比interactive 模式不差的响应的前提下会做到了更加省电。
performance:性能模式!只有最高频率,从来不考虑消耗的电量,性能没得说,但是耗电量。
powersave 省电模式,通常以最低频率运行。
userspace:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置
Hotplug:类似于ondemand, 但是cpu会在关屏下尝试关掉一个cpu,并且带有deep sleep,比较省电。
Linux 内核中与 CPU 调频相关的驱动程序文件
drivers/cpufreq/cpufreq.c
drivers/cpufreq/cpufreq.c
是 Linux 内核中与 CPU 调频相关的驱动程序文件。CPU 调频是根据负载需求动态调整 CPU 频率的过程,以提供性能和能源效率的平衡。
该文件位于 Linux 内核的 drivers/cpufreq/
目录下,它包含了与 CPU 调频相关的函数、数据结构和算法等。
cpufreq.c
文件中的代码实现了 CPU 调频的主要功能,例如:
- 初始化 CPU 调频框架及相关数据结构。
- 支持不同的调频策略,如 performance、powersave、ondemand 等。
- 根据系统负载情况选择合适的 CPU 频率。
- 处理频率切换请求,并相应地更新 CPU 频率。
- 提供与 CPU 调频相关的接口供其他模块或用户空间程序使用。
请注意,cpufreq.c
文件中的具体实现会因为不同的内核版本而有所差异。因此,如果您想深入了解该文件的内容,最好参考特定内核版本的代码或相关文档。
修改imx8系统的cpu频率
1.查看可用的调频策略
使用以下命令查看当前可用的 CPU 调频策略:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
2.查看当前频率及调频策略
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
3.调频策略为performance
4.查看当前频率
同理设置低频
echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
设置某一特定频率
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 900000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
Menu Configuration Options
The following Linux kernel configuration is provided for this module:
• CONFIG_CPU_FREQ; In menuconfig, this option is located under:
– CPU Power Management > CPU Frequency scaling
• The following options can be selected:
– CPU Frequency scaling
– CPU frequency translation statistics
– Default CPU frequency governor (conservative)(interactive)
– Performance governor
– Powersave governor
– Userspace governor for userspace frequency scaling
– Interactive CPU frequency policy governor
– Conservative CPU frequency governor
– Schedutil CPU frequency governor
– CPU frequency driver for i.MX CPUs
一般使用make defconfig生成.config,使用make menuconfig加载.config 然后更新,具体可参考下面的使用
make menuconfig 与.config的关系
make menuconfig
是 Linux 内核源代码中的一个工具,用于以交互式方式配置内核选项。它允许用户在编译和构建内核之前选择和调整各种内核配置。
与之相关的是 .config
文件,它是内核配置的主要配置文件。.config
文件包含了通过 make menuconfig
或其他类似工具进行的所有配置选择,并指定了编译内核时要使用的选项和参数。
当您运行 make menuconfig
命令时,它会加载 .config
文件中的配置选项,并将其显示在交互式菜单中。您可以通过这个菜单选择、启用或禁用特定的内核功能、驱动程序和模块等等。在菜单中进行的配置更改会更新 .config
文件中的相应选项。
当您完成 make menuconfig
的配置并保存退出时,所做的修改将自动写入 .config
文件中。然后,您可以使用该 .config
文件来编译和构建内核,确保生成适合您选择的配置的内核镜像和内核模块。
总结来说,make menuconfig
是一个交互式配置工具,用于编辑 .config
文件中的内核选项。.config
文件存储了内核的配置信息,供编
相关文章:
系统卡死问题分析
CPU模式 CPU Frequency Scaling (CPUFREQ) Introduction CPU频率调节设备驱动程序的功能。该驱动程序允许在运行过程中更改CPU的时钟频率。一旦CPU频率被更改,必要的电源供应电压也会根据设备树脚本(DTS)中定义的电压值进行变化。通过降低时钟速度,这种方法可以减少功耗…...
中大许少辉博士中国建筑出版传媒八一新书《乡村振兴战略下传统村落文化旅游设计》百度百科新闻
中大许少辉博士中国建筑出版传媒八一新书《乡村振兴战略下传统村落文化旅游设计》百度百科新闻: 乡村振兴战略下传统村落文化旅游设计 - 百度百科 https://baike.baidu.com/item/乡村振兴战略下传统村落文化旅游设计/62588677 概览 《乡村振兴战略下传统村落文化旅游…...
int和Integer的不同
一个奇怪的事情,在int[]用 Arrays.asList 转List 的时候,转过去的是List<int[]>。而不是List<int>类型的。于是试了String和Integer类型。发现只有Int[]有问题。 package com.test.lc;import java.util.ArrayList; import java.util.Arrays…...
eslintignore无效解决办法
项目的根目录下新建.eslintignore,但是无论怎么配置,该文件总是无法生效。本想解决不生效的问题,但是一直无法解决,于是换了一种解决问题的思路。 方法一: 在需要进行忽略的文件顶部加上 /* eslint-disable */这样e…...
C# 学习笔记
此笔记极水~ ,来自两年前的库存。 是来自 B站 刘铁猛大佬 的视频,因为 好奇学了学。 其他 c# 变量的 内联赋值 vs. 构造函数内赋值 (引用自:https://www.iteye.com/blog/roomfourteen224-2208838) 上下文:c#中变量的内联赋值其…...
算法练习(8):牛客在线编程08 字符串
package jz.bm;import java.util.Arrays;public class bm8 {/*** BM83 字符串变形*/public String trans(String s, int n) {StringBuilder res new StringBuilder();//大小写转换for (int i 0; i < n; i) {if (s.charAt(i) > a && s.charAt(i) < z) {res.a…...
深入理解分布式架构,构建高效可靠系统的关键
深入探讨分布式架构的核心概念、优势、挑战以及构建过程中的关键考虑因素。 引言什么是分布式架构?分布式架构的重要性 分布式系统的核心概念节点和通信数据分区与复制一致性与一致性模型负载均衡与容错性 常见的分布式架构模式客户端-服务器架构微服务架构事件驱动…...
为什么选择elasticsearch分布式搜索引擎
文章目录 🔭什么是elasticsearch🌠ELK技术栈🌠elasticsearch和lucene🌠为什么不是其他搜索技术? 🔭总结 🔭什么是elasticsearch elasticsearch是一款非常强大的开源搜索引擎,具备非常…...
一百五十九、Kettle——Kettle9.2通过配置Hadoop clusters连接Hadoop3.1.3(踩坑亲测、附流程截图)
一、目的 由于kettle的任务需要用到Hadoop(HDFS),所以就要连接Hadoop服务。 之前使用的是kettle9.3,由于在kettle新官网以及博客百度等渠道实在找不到shims的驱动包,无奈换成了kettle9.2,kettle9.2的安装…...
渗透测试之逻辑漏洞
文章目录 一、支付漏洞1.修改附属值2.多重替换支付3.重复支付4.最小额支付5.最大值支付6.越权支付7.无限制试用8.多线程并发9.支付漏洞思路 二、密码找回漏洞1.本地验证绕过2.利用session重新绑定客户3.去掉验证参数绕过4.总结 三、短信验证码绕过1.短信验证码生命期限内可暴力…...
HTML class 中 CSS名称的顺序并不重要
的确是这样!我可以证明。让我们先来看一些CSS代码: .a {color: red; }.b {color: blue; }现在让我们看一些标记: <div class"a b">Here’s some text</div>文本会是蓝色的,因为.b 在CSS中是最后定义的,对吧ÿ…...
设计模式8:代理模式-静态代理
我尝试在JDK、Android SDK和一些出名的库中,寻找静态代理的源码,没能找到。如果有读者发现,欢迎评论或者私信我。 本文目录 静态代理的实例1. 售票代理2. 明星代理 静态代理的实例 1. 售票代理 售票服务 public interface TicketService {…...
运动耳机哪款好用、适合运动的耳机推荐
如今,蓝牙耳机不仅是手机的最佳伴侣,也成为了运动爱好者的必备装备。但是,在如此众多的蓝牙耳机中,你是否对选购感到困惑呢?实际上,选择适合运动的蓝牙耳机需要考虑许多因素,如舒适度、稳固性、…...
页面滑动到可视区域加载更多内容思维流程
页面滑动到可视区域加载更多内容思维流程...
Java Word转PDF(直接转和以图片形式转)、PDF转图片、图片转PDF
在淘宝上找了一家写代码的店铺写了一个工具类,再参考网上的代码,改了改 用到的类库: <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/fontbox --><!--word转pdf--><dependency><groupId>com.documents4…...
dockerfile编写LNMP
目录 1. 项目环境 2. 服务器环境 二、部署nginx(容器IP为192.168.158.26) 1、整个Dockerfile文件内容 编辑 2、配置nginx.conf文件 3、构建镜像 三、部署mysql 1、整个Docker文件内容 3、生成镜像 4、启动镜像容器 5、验证mysql 四、PHP部署 1…...
websocket + stomp + sockjs学习
文章目录 学习链接后台代码引入依赖application.ymlWebSocketConfigPrivateControllerWebSocketService WebSocketEventListenerCorsFilter 前端代码Room.vue 学习链接 WebSocket入门教程示例代码,代码地址已fork至本地gitee,原github代码地址ÿ…...
ApplicationListener , @EventListener 和 CommandLineRunner 启动顺序验证
一. 背景 排查线上问题, 发现一个重要功能的全局锁线程启动延迟很高. 服务启动40分钟之后, 才能拿到锁. 排查之后发现原因是因为代码引入了高优先级的ApplicationListener代码, 导致全局锁线程启动延迟. 二. 结论 启动顺序从高到底依次为: ApplicationListener , EventListe…...
网络编程基础(1)
目录 网络编程解决是跨主机的进程间通讯 1、网络 2、互联网 3、ip地址 (1)ipv4: (2)ipV6:1 (3)IP地址的组成: (4)Linux查看IP地址:ifconfig 4、mac地址 5、ping Ip地址 6…...
Linux驱动开发(Day4)
思维导图: 字符设备驱动分步注册:...
LVS负载均衡群集部署(LVS-NAT模型实例)
一、集群 1.1集群的含义 Cluster,集群、群集,为解决某个特定问题将多台计算机组合起来形成的单个系统。 由多台主机构成,但对外只表现为一个整体。 1.2群集的三种类型 1.2.1负载均衡群集 LB: Load Balancing,负载均衡&#x…...
【仿写tomcat】五、响应静态资源(访问html页面)、路由支持以及多线程改进
访问html页面 如果我们想访问html页面其实就是将本地的html文件以流的方式响应给前端即可,下面我们对HttpResponseServlet这个类做一些改造 package com.tomcatServer.domain;import com.tomcatServer.utils.ScanUtil;import java.io.IOException; import java.io…...
stm32单片机/51单片机蜂鸣器不响(proteus模拟)
蜂鸣器不发生原因就1个:电压不够 所以需要提高蜂鸣器2端的电压:可以采用的方法有: 1提高蜂鸣器电阻,这样根据分压原理,可以提升蜂鸣器2段电压 2更改蜂鸣器的工作电压为更小的值,这个可以通过在proteus内…...
BERT、ERNIE、Grover、XLNet、GPT、MASS、UniLM、ELECTRA、RoBERTa、T5、C4
BERT、ERNIE、Grover、XLNet、GPT、MASS、UniLM、ELECTRA、RoBERTa、T5、C4 ELMOBERTERNIE![在这里插入图片描述](https://img-blog.csdnimg.cn/274e31d0f8274c748d05abe2ec65fc73.png)GroverXLNetGPTMASSUniLMELECTRARoBERTaT5C4ELMO BERT...
主机防护的重要性和方式
01 主机防护的重要性 主机防护是网络安全的重要组成部分。在互联网时代,网络攻击成为了一种常见的威胁,而主机防护则是保护计算机系统免受网络攻击的重要手段。 主机防护可以防范各种网络攻击,如病毒、木马、黑客攻击等,从而保…...
聚观早报 | 抢先体验阿维塔11座舱;本田和讴歌采用NACS充电标准
【聚观365】8月21日消息 抢先体验阿维塔11鸿蒙座舱 本田和讴歌采用特斯拉NACS充电标准 华为秋季新品发布会将于9月12日举行 iQOO Z8即将到来 三星Galaxy S24系列外观或更改 抢先体验阿维塔11鸿蒙座舱 当前,智能座舱成了各大巨头跑马圈地的重要领域。根据毕马威…...
思科计算机网络答案(包含第1~11章节)
第一章 1.在以下哪个场景中推荐使用 WISP? 选择一项: A.城市里的网吧 B.没有有线宽带接入的农村地区的农场 C.任何有多个无线设备的家庭 D.通过有线连接访问 Internet 的大厦公寓 2.一位员工希望以尽可能最安全的方式远程访问公司网络。 下列哪种网络特征将允许员工获得对…...
所见即所得,「Paraverse平行云」助力万间打造智能建造新图景
在城市建设行业中,数字化逐渐成为其主导力量。 新一代信息基础设施建设也迎来了新的里程碑。数据显示,截至今年,我国已全面推进城市信息模型(CIM)基础平台建设,为城市规划、建设管理提供了多场景应用的强大…...
AI图片处理功能演示
例如,这是一张不错的图片,但是有3只手。 我们可以选择有问题的区域,然后要求 niji 进行重新绘制。 根据我们选择的区域,我们可以以不同的方式修复结果。 创意修复 修复并不仅限于纠正错误。我们可以要求 niji 添加额外的元素&…...
CentOS系统环境搭建(六)——使用docker-compose安装redis
centos系统环境搭建专栏🔗点击跳转 关于Docker-compose安装请看CentOS系统环境搭建(三)——Centos7安装Docker&Docker Compose,该文章同样收录于centos系统环境搭建专栏。 Docker-compose安装redis 文章目录 Docker-compose安…...
广州网站建设设计哪家好/新品牌推广方案
在HTML中设置email链接的方法:首先在HTML中添加一个a标签;然后给a标签的“href”属性提供一个email地址即可,语法格式“email邮件”。本教程操作环境:windows7系统、HTML5版、Dell G3电脑。HTML 标签标签定义超链接,用…...
网站管理系统设置/百度seo排名帝搜软件
引 言 作为一门面向智能合约的语言,Solidity与其他经典语言既有差异也有相似之处。 一方面,服务于区块链的属性使其与其他语言存在差异。例如,合约的部署与调用均要经过区块链网络确认;执行成本需要被严格控制,以防止…...
个人网站建设方案书/360排名检测
<?php header("content-type:text/html;charsetutf-8"); /*** 栈的顺序存储结构的基本操作**包括* 1.顺序栈的初始化 __contruct()* 2.销毁栈 destroyStack()* 3.清空栈 clearStack()* 4.判断栈是否为空 stackEmpty()* 5.获取栈顶元素 getTop()* 6.进栈操作 push…...
免费做三级网站/百度学术论文查重免费
循环扇在美国是一个比较常见的家电产品,它的作用是通过循环空气来改善室内空气流通,使室内温度更加舒适。对于循环扇,美国人关注的主要点是性能、价格、耐用性和使用便捷性。 在性能方面,美国人更加关注循环扇的效率和噪音水平。他…...
如何查看用wordpress建的站点/阿拉营销网站
文章目录一、题目1、题目描述2、基础框架3、原题链接二、解题报告1、思路分析2、时间复杂度3、代码详解三、本题小知识四、加群须知一、题目 1、题目描述 设计一种算法,将一个新节点插入到一个完全二叉树中,并在插入后保持其完整。实现 CBTInserter类: …...
满城网站建设/如何制作网站教程
三子棋代码实现思路: 一.菜单(是否开始游戏)—->打印棋盘—–>玩家下(电脑下)—->判断输赢*** 二.我们需要创建头文件game.h, 源文件game.c 和test.h*** 1.game.h用于函数的定义 #define _CRT_SECURE_NO_…...