【完美体育·(中国)手机网页版MYD-J1028X开发板】CPU调频策略
文章来源: 发布日期:2023.2.8 浏览次数:1096 次 |
由评测者“mameng”提供。
MYC-J1028X核心板尺寸82*45mm,基于NXP LS1028A处理器,板卡采用12层高密度PCB设计,沉金工艺生产,独立的接地信号层,无铅。核心板和底板采用314PIN MXM3.0金手指连接器连接,性价比高。Layerscape® LS1028A系列工业应用处理器专为实现工业物联网而设计,它集成了 3D图像功能、支持TSN的以太网、高性能PCIe® Gen 3.0 接口。4
LAYERSCAPE LS1028A框图:
该系列SoC集成了高性能ARM® Cortex®-A72处理器、支持TSN的以太网交换、带安全引擎的可信架构、支持4K显示的3D GPU以及集成式DisplayPort/嵌入式DisplayPort接口。用于工业物联网中的融合网络的TSN为了将工业物联网和工业4.0变成现实,制造商必须将制造和自动化系统等操作技术 (OT) 与库存、物流、客户关系管理系统等信息技术 (IT) 互连。实现两个功能域之间的信息流通,将能提高效率和缩短产品交付时间。时间敏感型网络 (TSN) 实现了IT和OT的融合,使用千兆以太网来实现高带宽,同时又使用传统IT设备,但是增加了各种功能,例如时间感知整形、帧抢占调度、帧复制和消除,以确保满足OT网络要求。LS1028A能够利用支持TSN的交换机来支持菊花链或环形部署,或者利用支持TSN的以太网控制器来支持端点应用。安全性LS1028A系列SoC使用可信架构提供的各种功能,例如安全启动、完全密钥存储和篡改检测,能够实现可信平台。安全引擎 (SEC) 可为加密以太网通信和磁盘存储提供加密加速。SEC还可降低公钥/私钥事务处理负载,并且支持椭圆曲线加
CPU的频率调节模式:
1. Performance. 不考虑耗电,只用最高频率。
2. Interactive. 直接上最高频率,然后看CPU负荷慢慢降低。
3. Powersave. 通常以最低频率运行,流畅度会受影响,一般不会用这个吧!
4. Userspace. 可以在用户空间手动调节频率。
5. Ondemand. 定期检查负载,根据负载来调节频率。
开发板通过串口登录系统:
查看MYC-J1028X 开发板设置CPU调频策略指令:
root@forlinx:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling默认情况下开发板启动后CPU调频策略为ondemand。
1.Performance:CPUfreq 被设置成scaling_min_freq和scaling_max_freq中的最高频率,
2.Powersave::CPUfreq 被设置成scaling_min_freq和scaling_max_freq中的最低频率;
3.Userspace:允许root权限的用户通过sysfs的“scaling_setspeed字段将cpu频率设置成用户想要的频率。
4.Ondemand:根据当前CPU使用情况调频,该调频策略的参数位于:
/sys/devices/system/cpu/cpufreq/ondemand
打开:查看文件;
sampling_rate:该间隔是查询CPU负载间隔,并根据CPU负载做对应的事
sampling_rate_min:采样间隔的最小值有硬件延迟或者内核限制
up_threshold:定义了根据sampling_rate间隔的cpu使用情况内核需要增加cpu频率的门限
ignore_nice_load:该参数的值是0或者1,如果是0,则统计cpu使用率时会统计所有cpu,如果被设置成1,则运行“nice”值的cpu将不会被统计到cpu使用率。
smapling_down_factor:该值控制当cpu运行在高主频时的降频行为,当设置成1(缺省值),则在调频时会重新评估cpu使用率,当设置成大于1的值(如100),在高负载时其和轮询时间间隔的乘积将作为查询负载的间隔,这用于减少cpu开销,让cpu更多的停留在较高主频。
interactive:其设计的目标是对低延迟的使用场景的响应。其调频策略类似“ondemand”,但是设置的参数值和“ondemand”是有区别的,主要来说就是升频率快,降频慢。
查看当前CPU频率:
/sys/devices/system/cpu/cpu0/cpufreq # catscaling_cur_freq
600000
root@localhost:/sys/devices/system/cpu/cpufreq# lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: ARM Model: 3 Model name: Cortex-A72 Stepping: r0p3 CPU max MHz: 1500.0000 CPU min MHz: 300.0000 BogoMIPS: 50.00 L1d cache: unknown size L1i cache: unknown size L2 cache: unknown size NUMA node0 CPU(s): 0,1 Flags: fp asimd evtstrm crc32 cpuid如果想使用其它策略,以高性能模式为例,返回根目率,可以进行如下设置,root@forlinx:/# systemctl disable ondemand.service
root@forlinx:/# apt-get install cpufrequtils
修改
root@forlinx:/# vi /etc/default/cpufrequtils
添加
GOVERNOR="performance"
重启测试
root@forlinx:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance
实际过程cpu1、cpu2、cpu3会同时改变。
— CPU默认调度策略
策略初始化注册完之后,会开一个定时器,周期检测系统负载变化来动态调节频率,流程如下:
cpufreq_interactive_timer -> //timer会被定期执行计算当前系统负载
wake_up_process(speedchange_task) -> //唤醒负载计算线程
cpufreq_interactive_speedchange_task ->
__cpufreq_driver_target ->
cpufreq_driver->target ->
cpufreq_target -> rockchip-cpufreq.c
cpufreq_frequency_table_target //设置的target freq要在policy的运行范围内
dvfs_clk_set_rate->
clk_dvfs_node->vd->vd_dvfs_target ->
dvfs_target ->
dvfs_get_limit_rate//这里会判断温度的litmit值(temp_limit_rate变量)
clk_set_rate