Linux内核SMP负载均衡学习

445 阅读1分钟

前言

a.假设一个4核处理器中的每个物理CPU拥有独立L1 cache且不支持超线程技术,分成两个簇cluster0核cluster1.每个簇包含两个物理CPU核,簇中的CPU核共享L2 cache。根据我们大家工作经验,是否能够画出处理器在Linux内核里调度域核调度组拓扑关系结构图。

b.如何查找出一个调度域里最繁忙的调度组?

c.CPU域根据实际物理属性,CPU域分成如下类型

CPU分类Linux内核分类描述
超线程(SMT)CONFIG_SCHED_SMT一个物理核心可以有两个执行线程,被称为超线程技术。共享CPU资源,共享L1 cache
多核(MC)CONFIG_SCHED_MC每个物理核心独享L2 cache,多个物理核心可以组成一个cluster,cluster里的CPU共享L2 cache
处理器(Soc)内核称为DIESOC级别

   Linux内核默认专门定义一个数组default_topology来存储CPU物理域的层次结构。DIE类型是标准配置。SMT和MC类型需要在内核配置时和实际硬件配置相符匹配,才能够发挥硬件的性能和均衡效果。ARM不支持SMT。

   内核对CPU的管理是通过bitmap来管理,并且定义possible,present,online和active共计4种状态。