自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)(二)—CPU輕量級(jí)隔離特性

系統(tǒng) OpenHarmony
CPU輕量級(jí)隔離特性提供了根據(jù)系統(tǒng)負(fù)載和用戶(hù)配置來(lái)選擇合適的CPU進(jìn)行動(dòng)態(tài)隔離的能力。

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

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

CPU輕量級(jí)隔離特性

基本概念

CPU輕量級(jí)隔離特性提供了根據(jù)系統(tǒng)負(fù)載和用戶(hù)配置來(lái)選擇合適的CPU進(jìn)行動(dòng)態(tài)隔離的能力。

  • 內(nèi)核會(huì)將被隔離CPU上的任務(wù)和中斷遷移到其他合適的CPU上執(zhí)行
  • 被隔離的CPU會(huì)進(jìn)入ilde狀態(tài),以此來(lái)達(dá)到功耗優(yōu)化的目標(biāo)。同時(shí)提供用戶(hù)態(tài)的配置和查詢(xún)接口來(lái)實(shí)現(xiàn)更好的系統(tǒng)調(diào)優(yōu)。

ilde狀態(tài): 現(xiàn)代處理器通常能夠進(jìn)入這樣的狀態(tài)——程序的執(zhí)行被暫停,而且屬于它的指令不從內(nèi)存中提取或執(zhí)行。

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

配置指導(dǎo)

使能CPU輕量級(jí)隔離特性

啟用CPU輕量級(jí)隔離,需要通過(guò)編譯內(nèi)核時(shí)打開(kāi)相應(yīng)的配置項(xiàng)及依賴(lài),相關(guān)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被依賴(lài)
CONFIG_SMP=y
CONFIG_SCHED_WALT=y

引入動(dòng)態(tài)核隔離的內(nèi)核基礎(chǔ)設(shè)施以及對(duì)應(yīng)的用戶(hù)態(tài)接口

CPU輕量級(jí)隔離特性與kernel_linux_5.10引入動(dòng)態(tài)核隔離的內(nèi)核基礎(chǔ)設(shè)施以及對(duì)應(yīng)的用戶(hù)態(tài)接口相關(guān)。

支持隔離核場(chǎng)景和解除隔離核場(chǎng)景。

  • 隔離核:內(nèi)核根據(jù)接口配置值對(duì)隔離核上非綁定在本核上的任務(wù)進(jìn)行遷移,放到affinity中其它隔離核上執(zhí)行。
  • 解除隔離核:內(nèi)核根據(jù)接口配置值以及系統(tǒng)負(fù)載解除核隔離,任務(wù)可以在該核上執(zhí)行。

合入的相關(guān)issues如下:https://gitee.com/openharmony/kernel_linux_5.10/issues/I4SRVK?from=project-issue

合入的內(nèi)核部分代碼如下:https://gitee.com/openharmony/kernel_linux_5.10/pulls/54/files 涉及文件如下

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

相關(guān)接口

CPU輕量級(jí)隔離提供了一些接口用于控制CPU隔離核的個(gè)數(shù)以及記錄當(dāng)前狀態(tài),支持以CPU cluster層級(jí)進(jìn)行配置,這些接口位于每個(gè)CPU cluster的首個(gè)CPU設(shè)備信息目錄中,如/sys/devices/system/cpu/cpu0/core_ctl

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

功能分類(lèi)

接口名

描述

控制接口

enable

功能開(kāi)關(guān),1表示開(kāi)啟,0表示關(guān)閉

min_cpus

設(shè)置活躍(未隔離)CPU最小核數(shù)

max_cpus

設(shè)置活躍(未隔離)CPU最大核數(shù),其中最大值為CPU cluster包含的CPU個(gè)數(shù)

狀態(tài)接口

active_cpus

顯示CPU cluster最終計(jì)算需要的CPU核數(shù)

need_cpus

顯示當(dāng)前需要解隔離的CPU核數(shù)

global_state

記錄系統(tǒng)所有CPU cluster的狀態(tài)信息,包含CPU 隔離狀態(tài),online狀態(tài)以及負(fù)載信息等。

使用CPU輕量級(jí)隔離接口

使用hdc_std工具進(jìn)入rk3568開(kāi)發(fā)板終端,RK3568 CPU為四核A55

查看CPU輕量級(jí)隔離功能開(kāi)關(guān)狀態(tài)

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

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

開(kāi)關(guān)CPU輕量級(jí)隔離功能

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

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

設(shè)置活躍CPU最小核數(shù)和最大核數(shù)

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

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

顯示當(dāng)前已經(jīng)動(dòng)態(tài)隔離的CPU核

cat /sys/devices/system/cpu/core_ctl_isolated

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

顯示當(dāng)前未隔離和CPU cluster最終計(jì)算需要的CPU核數(shù)

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

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

顯示系統(tǒng)記錄的所有CPU cluster的狀態(tài)信息

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

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核支持的其它特性

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核支持統(tǒng)計(jì)各個(gè)進(jìn)程的dma-buf占用

  • 數(shù)據(jù)收集:在dmabuf export的時(shí)候(創(chuàng)建時(shí)),記錄exporter(申請(qǐng)者)的pid、進(jìn)程名等信息。
  • 展示:新增以下兩個(gè)內(nèi)核節(jié)點(diǎn)用于展示,顯示每個(gè)進(jìn)程占用的dmabuf objects信息:包括dmabuf object的大小、對(duì)應(yīng)inode、申請(qǐng)者、exp_name等所需信息。

/proc/process_dmabuf_info 與 /sys/kernel/debug/dma_buf/process_bufinfo 兩個(gè)節(jié)點(diǎn)功能相同。

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核支持Blackbox

  • rk3568上DFX支持了Blackbox功能,大部分情況下,可以記錄重啟前最后時(shí)刻的內(nèi)核日志,路徑為/data/log/bbox
  • Blackbox的功能會(huì)在設(shè)備掛掉的時(shí)候保存現(xiàn)場(chǎng),內(nèi)核相關(guān)的config:

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

內(nèi)核編譯選項(xiàng)查看:zcat /proc/config.gz

/proc/config.gz 就是標(biāo)準(zhǔn)系統(tǒng)內(nèi)核配置文件,用 gzip 格式壓縮過(guò)。

只有當(dāng)內(nèi)核配置 CONFIG_IKCONFIG 和 CONFIG_IKCONFIG_PROC 為 y,才會(huì)在 /proc 中出現(xiàn) config.gz 文件。

相關(guān)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

知識(shí)點(diǎn)附送

查看系統(tǒng)支持的CPU核心與在線的核心數(shù)

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

查看系統(tǒng)支持的CPU離線的狀態(tài)

cat /sys/devices/system/cpu/offline

查看系統(tǒng)支持的CPU在線的狀態(tài)

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

開(kāi)關(guān)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

查看計(jì)算機(jī)名

hostname

查看內(nèi)核/操作系統(tǒng)/CPU信息

uname -a

查看網(wǎng)卡信息

dmesg | grep -i eth

cpu相關(guān)接口

OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核學(xué)習(xí)【2】CPU輕量級(jí)隔離特性-開(kāi)源基礎(chǔ)軟件社區(qū)

# 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

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

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

責(zé)任編輯:jianghua 來(lái)源: 51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2023-02-01 16:28:30

Linux內(nèi)核鴻蒙

2022-09-07 15:08:58

操作系統(tǒng)鴻蒙

2022-09-15 14:56:12

GDB調(diào)試鴻蒙

2022-10-12 15:14:08

開(kāi)機(jī)動(dòng)畫(huà)鴻蒙

2021-11-08 07:19:45

鴻蒙HarmonyOS應(yīng)用

2021-09-16 15:04:28

鴻蒙HarmonyOS應(yīng)用

2022-04-02 20:45:04

Hi3516開(kāi)發(fā)板操作系統(tǒng)鴻蒙

2023-12-29 08:45:40

Python3.8鴻蒙解釋器

2023-06-27 15:12:46

C++三方庫(kù)移植

2022-09-14 15:28:19

操作系統(tǒng)鴻蒙

2022-09-15 15:21:22

操作系統(tǒng)鴻蒙

2022-09-13 16:10:15

鴻蒙操作系統(tǒng)

2022-09-06 15:46:52

speexdsp鴻蒙

2022-09-16 15:01:37

操作系統(tǒng)技術(shù)鴻蒙

2022-01-13 10:11:59

鴻蒙HarmonyOS應(yīng)用

2009-09-11 08:26:49

Linux系統(tǒng)CRUX 2.6Linux

2022-02-16 16:01:02

Hi3516開(kāi)發(fā)板鴻蒙

2013-04-27 19:22:54

Ubuntu 13.0Lunbuntu 13

2023-04-10 09:44:22

內(nèi)核鼠標(biāo)調(diào)試鴻蒙

2021-10-09 10:12:39

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)