系统卡死问题分析

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QVw1Azmf-1692502397112)(file:///C:\Users\wanji\AppData\Local\Temp\ksohtml6988\wps2.jpg)]

3.调频策略为performance

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ud3sKESy-1692502397113)(file:///C:\Users\wanji\AppData\Local\Temp\ksohtml6988\wps3.jpg)]

4.查看当前频率

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nI6munZY-1692502397113)(file:///C:\Users\wanji\AppData\Local\Temp\ksohtml6988\wps4.jpg)]

同理设置低频

echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1RstI4o1-1692502397114)(file:///C:\Users\wanji\AppData\Local\Temp\ksohtml6988\wps5.jpg)]

设置某一特定频率

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dr88TyHF-1692502397115)(file:///C:\Users\wanji\AppData\Local\Temp\ksohtml6988\wps6.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZnkgP0I5-1692502397115)(file:///C:\Users\wanji\AppData\Local\Temp\ksohtml6988\wps7.jpg)]

一般使用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 文件存储了内核的配置信息,供编

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/97521.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CloudCompare——统计滤波

目录 1.统计滤波2.软件实现3.完整操作4.算法源码5.相关代码 本文由CSDN点云侠原创,CloudCompare——统计滤波,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 1.统计滤波 算法原理见:PCL 统计滤波器…

使用 Elasticsearch 轻松进行中文文本分类

本文记录下使用 Elasticsearch 进行文本分类,当我第一次偶然发现 Elasticsearch 时,就被它的易用性、速度和配置选项所吸引。每次使用 Elasticsearch,我都能找到一种更为简单的方法来解决我一贯通过传统的自然语言处理 (NLP) 工具和技术来解决…

韩顺平Linux 四十四--

四十四、rwx权限 权限的基本介绍 输入指令 ls -l 显示的内容如下 -rwxrw-r-- 1 root 1213 Feb 2 09:39 abc0-9位说明 第0位确定文件类型(d , - , l , c , b) l 是链接,相当于 windows 的快捷方式- 代表是文件是普通文件d 是目录,相…

录制游戏视频的软件有哪些?分享3款软件!

“有录制游戏视频的软件推荐吗?最近迷上了网游,想录制点自己高端操作的游戏画面,但是不知道用什么软件录屏比较好,就想问问大家,有没有好用的录制游戏视频软件。” 在游戏领域,玩家们喜欢通过录制游戏视频…

《Go 语言第一课》课程学习笔记(四)

构建模式:Go Module 的 6 类常规操作 为当前 module 添加一个依赖 我们如何为一个 Go Module 添加一个新的依赖包呢? 如果我们要为项目增加一个新依赖:github.com/google/uuid,我们首先会更新源码:package mainimpor…

【3D激光SLAM】LOAM源代码解析--scanRegistration.cpp

系列文章目录 【3D激光SLAM】LOAM源代码解析–scanRegistration.cpp 写在前面 本系列文章将对LOAM源代码进行讲解,在讲解过程中,涉及到论文中提到的部分,会结合论文以及我自己的理解进行解读,尤其是对于其中坐标变换的部分&…

更多openEuler镜像加入AWS Marketplace!

自2023年7月openEuler 22.03 LTS SP1正式登陆AWS Marketplace后,openEuler社区一直持续于在AWS上提供更多版本。 目前,openEuler22.03 LTS SP1 ,SP2两个版本及 x86 arm64两种架构的四个镜像均可通过AWS对外提供,且在亚太及欧洲15个Region开放…

【数据结构】吃透单链表!!!(详细解析~)

目录 前言:一.顺序表的缺陷 && 介绍链表1.顺序表的缺陷2.介绍链表(1)链表的概念(2)链表的结构(3)链表的功能 二.单链表的实现1.创建节点的结构2.头文件函数的声明3.函数的实现&#xff…

第十五章:联邦学习攻防实战

代码 联邦学习的后门攻击案例 联邦学习的模型压缩案例 联邦学习的差分隐私案例 联邦学习的同态加密案例 联邦学习的参数稀疏化案例

EndNote-文献管理工具【安装篇】

下载:(文末附安装包,建议使用这一个,官网都需要付费) 打开安装包,双击: 安装完了之后不要直接运行,因为EndNote软件少了一个类型的软件:GB/T17714。 因此我们需要把这个…

VBA技术资料MF45:VBA_在Excel中自定义行高

【分享成果,随喜正能量】可以不光芒万丈,但不要停止发光。有的人陷入困境,不是被人所困,而是自己束缚自己,这时"解铃还须系铃人",如果自己无法放下,如何能脱困? 。 我给V…

Liunx系统编程:进程信号的概念及产生方式

目录 一. 进程信号概述 1.1 生活中的信号 1.2 进程信号 1.3 信号的查看 二. 信号发送的本质 三. 信号产生的四种方式 3.1 按键产生信号 3.2 通过系统接口发送信号 3.2.1 kill -- 向指定进程发送信号 3.2.2 raise -- 当自身发送信号 3.2.3 abort -- 向自身发送进程终止…

verilog学习笔记6——锁存器和触发器

文章目录 前言一、锁存器1、基本SR锁存器——或非门实现2、基本SR锁存器——与非门实现3、门控SR锁存器4、门控D锁存器 二、触发器1、 电平触发的RS触发器/同步SR触发器2、电平触发的D触发器/D型锁存器3、边沿触发的D触发器4、脉冲触发的RS触发器 三、边沿触发、脉冲触发、电平…

【C# 基础精讲】LINQ to XML查询

LINQ to XML 是 C# 中用于查询和操作 XML 数据的强大工具。它允许您使用 LINQ 查询语法对 XML 文档进行查询、过滤、投影等操作,从而更加方便地处理 XML 数据。本文将详细介绍 LINQ to XML 的基本概念、常见操作以及示例,帮助您了解如何在 C# 中使用 LIN…

智能数据建模软件DTEmpower 2023R2新版本功能介绍

DTEmpower是由天洑软件自主研发的一款通用的智能数据建模软件,致力于帮助工程师及工科专业学生,利用工业领域中的仿真、试验、测量等各类数据进行挖掘分析,建立高质量的数据模型,实现快速设计评估、实时仿真预测、系统参数预警、设…

Verilog同步FIFO设计

同步FIFO(synchronous)的写时钟和读时钟为同一个时钟,FIFO内部所有逻辑都是同步逻辑,常常用于交互数据缓冲。 异步FIFO:数据写入FIFO的时钟和数据读出FIFO的时钟是异步的(asynchronous) 典型同步FIFO有三部分组成: (1&#xff0…

arm:day4

1. 实现三盏灯的点亮 .text .global _start_start: led1初始化函数LED_INIT: 1 通过RCC_AHB4_ENSETR寄存器&#xff0c;设置GPIOE F组控制器使能 0x50000A28[5:4]1ldr r0,0X50000A28ldr r1,[r0]orr r1,r1,#(0X3<<4)str r1,[r0] 2.1 通过GPIOE_MODER寄存器&#xff0c;…

史上最简洁实用人工神经元网络c++编写202301

这是史上最简单、清晰…… C语言编写的 带正向传播、反向传播(Forward ……和Back Propagation&#xff09;……任意Nodes数的人工神经元神经网络……。 大一学生、甚至中学生可以读懂。 适合于&#xff0c;没学过高数的程序员……照猫画虎编写人工智能、深度学习之神经网络……

plt绘制箱型图+散点图

import numpy as np import matplotlib.pyplot as plt# 创建示例数据 np.random.seed(1) data [np.random.normal(0, std, 100) for std in range(1, 4)]# 绘制箱型图 plt.boxplot(data, patch_artistTrue,zorder0)# 添加数据点的散点图&#xff0c;并设置参数以避免重叠 for …

6.Web后端开发【SpringBoot入门】

文章目录 1 SpringBoot快速入门1.1 Web分析 2. HTTP协议2.1 HTTP-概述2.1.1 介绍2.2.2 特点 2.2 HTTP-请求协议2.3 HTTP-响应协议2.3.1 格式介绍2.3.2 响应状态码 常见的相应状态码 3 WEB服务器3.1 服务器概述 1 SpringBoot快速入门 Spring的官网Spring Boot 可以帮助我们非常…