摘要: meminfo Documentation/filesystem/proc.rst对meminfo的描述如下: Provides information about distribution and utilization of memory. This varies by architecture 阅读全文
posted @ 2024-09-03 16:09 ZouTaooo 阅读(46) 评论(0) 推荐(1) 编辑
摘要: 前言 将一个处于睡眠状态或者新创建的进程加入就绪队列时会产生唤醒抢占检查,被唤醒的任务一般期望能够立刻执行,发生抢占能够满足被唤醒任务的实时性需求。CFS调度器的唤醒抢占能否成功会受到sysctl_sched_wakeup_granularity的影响,该参数能控制唤醒抢占发生的概率。频繁的抢占有可 阅读全文
posted @ 2024-08-26 17:12 ZouTaooo 阅读(117) 评论(0) 推荐(1) 编辑
摘要: softirq 软中断(softirq)是内核虚拟出的一种异步中断,通过raise_softirq()来触发,可以将一些不紧急的任务推迟执行。在软中断中可以处理中断下半部,比如网卡数据收发的软中断NET_TX_SOFTIRQ和NET_RX_SOFTIRQ,还可以处理一些需要异步执行的场景,比如定时器 阅读全文
posted @ 2024-04-19 14:57 ZouTaooo 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 中断上下文 前言 中断处理过程中会禁止抢占,如果中断处理函数不能尽快执行完成就会影响系统的实时性,为此内核将中断的处理过程分为上半部(Top Half)和下半部(Bottom Half),将耗时操作推迟到下半部异步执行。 中断上半部:在上半部中执行一些能够快速完成的动作,比如响应外设请求。 中断下半 阅读全文
posted @ 2024-04-19 14:57 ZouTaooo 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 前言 在现代计算机系统中,中断模块的硬件越来越复杂,有可能有多个中断控制器(Interrupt Controller, IC)之间进行级联从而拓展可以管理的中断源数量。这就会产生几个问题,每个IC上都连接着多个设备,IC会给irq line连接的每一个设备分配一个硬件中断请求号(HW interru 阅读全文
posted @ 2024-04-02 19:15 ZouTaooo 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 前言 Linux自身具备一定的异常检测机制,softlockup和hardlockup是典型的两种,softlockup检测内核是否出现了长时间不调度其他任务执行的异常情况。hardlockup则更进一步检测内核是否出现了长时间不响应中断的异常情况。softlockup和hardlockup的定义如 阅读全文
posted @ 2024-01-16 16:29 ZouTaooo 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 前言 CFS带宽控制顾名思义是控制CPU的使用量,作为CFS一个可配置特性需要开启CONFIG_CGROUP_SCHED CONFIG_FAIR_GROUP_SCHED 和 CONFIG_CFS_BANDWIDTH三个配置选项,实现的效果就是对任务组实施CPU带宽限流,让任务组在单位周期内只能使用定 阅读全文
posted @ 2023-11-23 14:34 ZouTaooo 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 前言 以进程为CPU资源的分配单位在某些场景下是有缺陷的,比如容器场景需要支持按照组做资源的分配,然后组内再按照进程做细化的资源分配。组调度技术是cgroup实现的一个重要组成部分。 CFS组调度需要开启CONFIG_CGROUP_SCHED和CONFIG_FAIR_GROUP_SCHED选项。 组 阅读全文
posted @ 2023-11-20 16:06 ZouTaooo 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 前言 PELT全称per-entity load tracking,用于实现调度实体级别的负载信息统计,能够为调度决策提供更细粒度的信息。上文中的组调度的任务组权重分配就依赖于负载信息,除此之外负载均衡场景也需要精准的对每个核的负载情况进行分析,PELT相比于rq级的负载统计,除了能知道负载的情况还 阅读全文
posted @ 2023-11-20 16:05 ZouTaooo 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 前言 新任务产生接口有clone、fork等系统调用,这些系统调用的都是通过do_fork函数实现。本文主要对do_fork中CFS新任务的调度初始化过程进行了探究,看看一个CFS新任务如何完成调度信息的初始化以及进入就绪队列的。 CFS的调度信息初始化 long _do_fork(...) { / 阅读全文
posted @ 2023-11-09 19:55 ZouTaooo 阅读(147) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示
主题色彩