随笔分类 - CPU
摘要:在 Android 系统中,core control 的目录通常位于: /sys/module/core_ctl/parameters/ 该目录包含一系列文件,用于控制和调节 Android 的 core_ctl 模块的行为。core_ctl 是专门为多核处理器设计的一种动态核心管理机制,尤其在 b
阅读全文
摘要:在Linux操作系统中,处理器(CPU)调度是由调度器(Scheduler)负责的,该调度器管理系统中的所有进程,并决定哪个进程在什么时候在哪个CPU上运行。Linux调度器使用了一种称为 Completely Fair Scheduler (CFS) 的调度策略来保证公平性。 为了更有效地管理多处
阅读全文
摘要:背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器 使用工具:Source Insight 3.5, Visio 1. 介绍
阅读全文
摘要:CFS任务的负载均衡(概述) 我们描述负载均衡的系列文章一共三篇,第一篇是框架部分,即本文,主要描述了负载均衡相关的原理、场景和框架。后面的两篇是对均衡代码的情景分析,通过对tick balance、new idle balance和task placement等几个典型的负载均衡来呈现其实现细节,
阅读全文
摘要:CPU拓扑结构简介 SMT Level 超线程处理器的一个核心 MC Level 多核CPU的一个核心 DIE Level 一个物理CPU的晶片(注意不是package,package是封装好了的,肉眼看到的CPU处理器)(覆盖系统所有的CPU(CPU0~CPUN)) cpu最小级别的就是超线程处理
阅读全文
摘要:当一个进程在不同的CPU核心之间迁移时,性能可能受到影响的原因主要包括以下几点: 缓存失效:CPU的缓存(L1、L2缓存)通常是核心私有的,即每个CPU核心有自己的缓存。当一个进程从一个核心迁移到另一个核心时,原来在第一个核心缓存中的数据无法直接在第二个核心中使用。这会导致缓存失效(cache mi
阅读全文
摘要:每个处理器有一个迁移线程,线程名称是“migration/<cpu_id>”,属于停机调度类,可以抢占所有其他进程,其他进程不可以抢占它。迁移线程有两个作用。 (1)调度器发出迁移请求,迁移线程处理迁移请求,把进程迁移到目标处理器。 (2)执行主动负载均衡。 如图所示,每个处理器有一个停机工作管理器
阅读全文
摘要:本文介绍了Android13中的冻结进程功能,它是一种重要的资源管理策略,可以提高系统性能和稳定性,同时最大限度地节省设备的资源和电池消耗。 文章讨论了如何合理分配资源,包括CPU、内存等,以提高设备性能和用户体验。此外,文章还提到了冻结进程对应用程序线程的影响,并介绍了Android13与Andr
阅读全文
摘要:一、简介 只是一个创建per-cpu线程执行用户提供的回调的机制。 内核中已存在的注册 static struct smp_hotplug_thread idle_inject_threads = { //drivers/powercap/idle_inject.c .store = &idle_i
阅读全文
摘要:一、什么是NoC NOC(Network on Chip)是一种用于片上系统(SoC, System on Chip)中的通信架构,它在芯片内为处理器、存储器、I/O 设备和其他硬件模块之间提供数据通信。NOC 的目的是提高片内通信的效率,尤其是在多核处理器架构和大规模集成电路中。 在传统的片上系统
阅读全文
摘要:一、SMP管理 在继续讲解之前,我们先来说一下多CPU管理(这里的CPU是指逻辑CPU,在很多语境中CPU都是默认指的逻辑CPU,物理CPU要特别强调是物理CPU)。最开始的时候计算机都是单CPU的,叫做UP(Uni-Processor),操作系统也只支持UP。后来计算机慢慢发展成了多CPU(包括多
阅读全文
摘要:cpu_capacity 在Linux内核中,cpu_capacity 是用于表示每个CPU的处理能力的一个参数,通常用于调度器的负载均衡。它表明不同的CPU核心在计算资源分配中的相对性能,尤其在异构多核架构(如ARM的big.LITTLE架构)中,不同的核心可能具有不同的计算能力。 主要概念 同构
阅读全文
摘要:EAS调度器缘起 Linux内核的一直都使用完全公平调度器CFS(Completely Fair Scheduler)作为默认调度器,但是在使用中发现CFS如下几个问题。 CFS主要是为了服务器性能优先场景而设计的,主要目标是最大限度地提高系统的吞吐量,CFS调度的目标是所有任务都平均分配到系统所有
阅读全文
摘要:schedtune.colocate 参数主要通过 /proc/sys/kernel/schedtune.colocate 接口进行配置。具体的使用方式和可选参数如下: 使用方法 你可以通过以下命令来读取或设置 schedtune.colocate 的值: 读取当前值: cat /proc/sys/
阅读全文
摘要:一、引言 RTG(Related Thread Group)是Linux内核中的一个调度特性,主要作用是优化线程的CPU调度和调频策略。它通过将存在数据共享和通信关联的线程组合在一起,实现以下几个关键功能: 选核优化:RTG确保相关线程组内的线程尽可能在同一个CPU簇上运行,以利用共享的缓存,提高性
阅读全文
摘要:一、引文 随着CPU架构的发展,工艺的升级,带来性能提升,能效的提升(同性能下)。但是由于极限性能的增加,也带来了peak功耗的增加(大部分情况下,能效比的提升无法抵消这部分),CPU功耗优化一直是广大SOC厂商比较头疼的问题。 CPU功耗分为静态功耗和动态功耗: 静态功耗(static power
阅读全文
摘要:随着linux内核调度技术的不断演进,目前存在多个调度类(stop、deadline、rt、cfs、idle)以满足不同性质和要求的任务(task)的调度需求。对于用户空间来说,完全公平调度器(CFS)和实时调度器(RT)是绝大多数任务所使用的,但是基于POSIX Priority算法不足以支撑关于
阅读全文
摘要:proc文件系统(/proc/sys/kernel/) sched_child_runs_first /proc/sys/kernel/sched_child_runs_first是Linux内核中的一个配置文件,它用于控制调度器如何处理新创建的进程(即子进程)与它们的父进程之间的关系。 功能说明:
阅读全文
摘要:一、前言 本文主要描述的是进程优先级这个概念。从用户空间来看,进程优先级就是nice value和scheduling priority,对应到内核,有静态优先级、realtime优先级、归一化优先级和动态优先级等概念,我们希望能在第二章将这些相关的概念描述清楚。为了加深理解,在第三章我们给出了几个
阅读全文
摘要:在操作系统和调度机制中,静态优先级和动态优先级是两种不同的进程优先级管理方式,它们在调度策略和优先级调整上有明显的区别。 静态优先级 定义: 静态优先级是在进程创建时设定,并在整个进程的生命周期内保持不变。 特点: 不会随着时间或进程行为变化。 通常由系统管理员或应用程序设置。 适用于实时系统或需要
阅读全文


浙公网安备 33010602011771号