了解更多开源内容请访问:开源基础软件社区https://ost.51cto。comCPU轻量级隔离特性基本概念CPU轻量级隔离特性提供了根据系统负载和用户配置选择合适的CPU进行动态隔离的能力。内核会将隔离CPU上的任务和中断迁移到其他合适的CPU上执行。孤立的CPU会进入ilde状态,从而达到功耗优化的目的。同时提供用户态配置和查询接口,实现更好的系统调优。ildestate:现代处理器通常能够进入一种状态,在该状态下程序的执行被暂停并且属于它的指令不会从内存中获取或执行。参考文档: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_defconfigCONFIG_CPU_ISOLATION_OPT=yCONFIG_SCHED_CORE_CTRL=y#其他CONFIG依赖CONFIG_SMP=yCONFIG_SCHED_WALT=y引入动态核心隔离的内核基础结构和对应的用户态接口CPU轻量级隔离特性与kernel_linux_5.10引入的动态核心隔离的内核基础结构和对应的用户态接口有关。支持隔离核心场景和去隔离核心场景。隔离核:内核根据接口配置值,将隔离核上没有绑定到核上的任务迁移到affinity中的其他隔离核上执行。解除内核隔离:内核根据接口配置值和系统负载解除内核隔离,任务可以在内核上执行。合并的相关issue如下:https://gitee.com/openharmony/kernel_linux_5.10/issues/I4SRVK?from=project-issue合并内核部分代码如下:https://gitee.com/openharmony/kernel_linux_5。10/pulls/54/files涉及的文件如下相关接口CPULightweightIsolation提供了一些接口来控制CPU隔离核的数量和记录当前状态,支持CPU集群级别的配置。这些接口位于每个CPU集群中的第一个CPU设备信息目录中,如/sys/devices/system/cpu/cpu0/core_ctl功能分类接口名称描述控制接口启用功能开关,1表示启用,0表示禁用min_cpus设置active(notisolated)CPUminimumcorenumbermax_cpus设置最大active(non-isolated)CPUcore数,最大值为CPU集群包含的CPU数。状态界面active_cpus显示了CPU集群最终计算所需的CPU核数。need_cpus显示当前需要解除隔离的CPU内核数。所有CPU集群的状态信息,包括CPU隔离状态、在线状态、负载信息。使用CPU轻量级隔离接口,使用hdc_std工具进入rk3568开发板终端。RK3568CPU为四核A55查看CPU轻量级隔离功能开关状态。cat/sys/devices/system/cpu/cpu0/core_ctl/enable开关CPU轻量级隔离功能echo0>/sys/devices/system/cpu/cpu0/core_ctl/enableecho1>/sys/devices/system/cpu/cpu0/core_ctl/enable设置活动CPU内核的最小和最大数量echo0>/sys/devices/system/cpu/cpu0/core_ctl/min_cpusecho4>/sys/devices/system/cpu/cpu0/core_ctl/max_cpus显示当前dynamicallyisolatedCPUcorescat/sys/devices/system/cpu/core_ctl_isolated显示当前未隔离和CPU集群最终计算所需的CPU核数cat/sys/devices/system/cpu/cpu0/core_ctl/active_cpuscat/sys/devices/system/cpu/cpu0/core_ctl/need_cpus显示系统记录的所有CPU集群的状态Informationcat/sys/devices/system/cpu/cpu0/core_ctl/global_stateOpenHarmony标准系统内核支持的其他特性OpenHarmony标准系统内核支持统计每个进程的dma-buf占用情况数据采集:当dmabuf为exported(创建时),记录Exporter(申请者)pid,进程名等信息。显示:增加以下两个内核节点进行显示,显示每个进程占用的dmabuf对象的信息:包括dmabuf对象的大小、对应的inode、applicant、exp_name等需要的信息。/proc/process_dmabuf_info和/sys/kernel/debug/dma_buf/process_bufinfo具有相同的功能。OpenHarmony标准系统内核支持BlackboxDFXonrk3568支持Blackbox功能。在大多数情况下,它可以记录重启前最后一刻的内核日志。路径为/data/log/bboxBlackbox会保存设备挂机时的场景。内核相关配置:内核编译选项查看:zcat/proc/config.gz/proc/config.gz是标准的系统内核配置文件,用gzip格式压缩。仅当内核配置CONFIG_IKCONFIG和CONFIG_IKCONFIG_PROC为y时,config.gz文件才会出现在/proc中。相关问题:https://gitee.com/openharmony/kernel_linux_config/issues/I4WRTRcpuset与cpu热插拔解耦https://gitee.com/openharmony/kernel_linux_5.10/issues/I4LKQ0?from=project-issue#cd/dev/cpuset#lsbackgroundcpuset.memory_pressure_enabledcgroup.clone_childrencpuset.memory_spread_pagecgroup.procscpuset.memory_spread_slabcgroup.sane_behaviorcpuset.memscpuset.cpu_exclusivecpuset.sched_load_balancecpuset.cpuscpuset.sched_relax_domain_levelcpuset.effective_cpusforegroundcpuset.effective_memsnotify_on_releasecpuset.mem_exclusiverelease_agentcpuset.mem_hardwallsystem-backgroundcpuset.memory_migratetaskscpuset.memory_pressuretop-app#catcpuset.cpuset0-3附知识点查看系统支持的CPU核数和在线核数cat/sys/devices/system/cpu/presentcat/sys/devices/system/cpu/online查看系统支持的CPU的离线状态cat/sys/devices/system/cpu/offline查看CPU支持的在线状态由系统cat/sys/devices/system/cpu/cpu0/onlineswitchCPUcoreecho1>/sys/devices/system/cpu/cpu0/onlineecho1>/sys/devices/system/cpu/cpu1/onlineecho0>/sys/devices/system/cpu/cpu2/onlineecho0>/sys/devices/system/cpu/cpu3/online查看CPU信息cat/proc/cpuinfo查看计算机名hostname查看内核/操作系统/CPU信息uname-a查看网卡信息dmesg|grep-iethcpu相关接口#cd/sys/devices/system/cpu#lscore_ctl_isolatedcpu3isolatedonlinesmtcpu0cpufreqkernel_maxpossibleueventcpu1cpuidlemodaliaspowervulnerabilitiescpu2hotplugofflinepresent了解更多开源,请访问:开源基础软件社区https://ost.51cto.com
