文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

OpenHarmony标准系统内核学习(二)—CPU轻量级隔离特性

2024-12-13 15:51

关注

想了解更多关于开源的内容,请访问:

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

CPU轻量级隔离特性

基本概念

CPU轻量级隔离特性提供了根据系统负载和用户配置来选择合适的CPU进行动态隔离的能力。

ilde状态: 现代处理器通常能够进入这样的状态——程序的执行被暂停,而且属于它的指令不从内存中提取或执行。

参考文档:https://www.kernel.org/doc/html/v5.10/admin-guide/pm/cpuidle.html

配置指导

使能CPU轻量级隔离特性

启用CPU轻量级隔离,需要通过编译内核时打开相应的配置项及依赖,相关CONFIG如下:

rk3568芯片组件config:kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig

CONFIG_CPU_ISOLATION_OPT=y
CONFIG_SCHED_CORE_CTRL=y
# 另有部分CONFIG被依赖
CONFIG_SMP=y
CONFIG_SCHED_WALT=y

引入动态核隔离的内核基础设施以及对应的用户态接口

CPU轻量级隔离特性与kernel_linux_5.10引入动态核隔离的内核基础设施以及对应的用户态接口相关。

支持隔离核场景和解除隔离核场景。

合入的相关issues如下:https://gitee.com/openharmony/kernel_linux_5.10/issues/I4SRVK?from=project-issue

合入的内核部分代码如下:https://gitee.com/openharmony/kernel_linux_5.10/pulls/54/files 涉及文件如下

相关接口

CPU轻量级隔离提供了一些接口用于控制CPU隔离核的个数以及记录当前状态,支持以CPU cluster层级进行配置,这些接口位于每个CPU cluster的首个CPU设备信息目录中,如/sys/devices/system/cpu/cpu0/core_ctl

功能分类

接口名

描述

控制接口

enable

功能开关,1表示开启,0表示关闭

min_cpus

设置活跃(未隔离)CPU最小核数

max_cpus

设置活跃(未隔离)CPU最大核数,其中最大值为CPU cluster包含的CPU个数

状态接口

active_cpus

显示CPU cluster最终计算需要的CPU核数

need_cpus

显示当前需要解隔离的CPU核数

global_state

记录系统所有CPU cluster的状态信息,包含CPU 隔离状态,online状态以及负载信息等。

使用CPU轻量级隔离接口

使用hdc_std工具进入rk3568开发板终端,RK3568 CPU为四核A55

查看CPU轻量级隔离功能开关状态

cat /sys/devices/system/cpu/cpu0/core_ctl/enable

开关CPU轻量级隔离功能

echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/enable

设置活跃CPU最小核数和最大核数

echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus

显示当前已经动态隔离的CPU核

cat /sys/devices/system/cpu/core_ctl_isolated

显示当前未隔离和CPU cluster最终计算需要的CPU核数

cat /sys/devices/system/cpu/cpu0/core_ctl/active_cpus
cat /sys/devices/system/cpu/cpu0/core_ctl/need_cpus

显示系统记录的所有CPU cluster的状态信息

cat /sys/devices/system/cpu/cpu0/core_ctl/global_state

OpenHarmony标准系统内核支持的其它特性

OpenHarmony标准系统内核支持统计各个进程的dma-buf占用

/proc/process_dmabuf_info 与 /sys/kernel/debug/dma_buf/process_bufinfo 两个节点功能相同。

OpenHarmony标准系统内核支持Blackbox

内核编译选项查看:zcat /proc/config.gz

/proc/config.gz 就是标准系统内核配置文件,用 gzip 格式压缩过。

只有当内核配置 CONFIG_IKCONFIG 和 CONFIG_IKCONFIG_PROC 为 y,才会在 /proc 中出现 config.gz 文件。

相关issues:https://gitee.com/openharmony/kernel_linux_config/issues/I4WRTR

cpuset与cpu热插拔解耦

​https://gitee.com/openharmony/kernel_linux_5.10/issues/I4LKQ0?from=project-issue​

# cd/ dev/cpuset
# ls
background cpuset.memory_pressure_enabled
cgroup.clone_children cpuset.memory_spread_page
cgroup.procs cpuset.memory_spread_slab
cgroup.sane_behavior cpuset.mems
cpuset.cpu_exclusive cpuset.sched_load_balance
cpuset.cpus cpuset.sched_relax_domain_level
cpuset.effective_cpus foreground
cpuset.effective_mems notify_on_release
cpuset.mem_exclusive release_agent
cpuset.mem_hardwall system-background
cpuset.memory_migrate tasks
cpuset.memory_pressure top-app
# cat cpuset.cpus
0-3

知识点附送

查看系统支持的CPU核心与在线的核心数

cat /sys/devices/system/cpu/present
cat /sys/devices/system/cpu/online

查看系统支持的CPU离线的状态

cat /sys/devices/system/cpu/offline

查看系统支持的CPU在线的状态

cat /sys/devices/system/cpu/cpu0/online

开关CPU核心

echo 1 > /sys/devices/system/cpu/cpu0/online
echo 1 > /sys/devices/system/cpu/cpu1/online
echo 0 > /sys/devices/system/cpu/cpu2/online
echo 0 > /sys/devices/system/cpu/cpu3/online

查看CPU信息

cat /proc/cpuinfo

查看计算机名

hostname

查看内核/操作系统/CPU信息

uname -a

查看网卡信息

dmesg | grep -i eth

cpu相关接口

# cd /sys/devices/system/cpu
# ls
core_ctl_isolated cpu3 isolated online smt
cpu0 cpufreq kernel_max possible uevent
cpu1 cpuidle modalias power vulnerabilities
cpu2 hotplug offline present

想了解更多关于开源的内容,请访问:

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

来源:51CTO 开源基础软件社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯