Home
last modified time | relevance | path

Searched refs:CPU (Results 1 – 25 of 1276) sorted by relevance

12345678910>>...52

/linux-6.6.21/Documentation/translations/zh_CN/scheduler/
Dsched-capacity.rst18 1. CPU算力
24 一般来说,同构的SMP平台由完全相同的CPU构成。异构的平台则由性能特征不同的CPU构成,在这样的
25 平台中,CPU不能被认为是相同的。
27 我们引入CPU算力(capacity)的概念来测量每个CPU能达到的性能,它的值相对系统中性能最强的CPU
28 做过归一化处理。异构系统也被称为非对称CPU算力系统,因为它们由不同算力的CPU组成。
30 最大可达性能(换言之,最大CPU算力)的差异有两个主要来源:
32 - 不是所有CPU的微架构都相同。
33 - 在动态电压频率升降(Dynamic Voltage and Frequency Scaling,DVFS)框架中,不是所有的CPU
39 CPU性能通常由每秒百万指令(Millions of Instructions Per Second,MIPS)表示,也可表示为
47 调度器使用了两种不同的算力值。CPU的 ``capacity_orig`` 是它的最大可达算力,即最大可达性能等级。
[all …]
Dsched-stats.rst23 在第14版schedstat中,每个被列出的CPU至少会有一级域统计数据,且很可能有一个
25 CPU上仲裁平衡,而domain0是最紧密聚焦的域,有时仅在一对CPU之间进行平衡。此时,
27 CPU受该域的影响。
38 CPU统计数据
56 6) 调用try_to_wake_up()导致本地CPU被唤醒了#次
62 9) 本CPU运行了#个时间片
67 对于每个被描述的CPU,和它相关的每一个调度域均会产生下面一行数据(注意,如果
72 第一个字段是一个位掩码,表明该域在操作哪些CPU
78 1) 当CPU空闲时,load_balance()在这个调度域中被调用了#次
79 2) 当CPU空闲时,load_balance()在这个调度域中被调用,但是发现负载无需
[all …]
Dsched-energy.rst17 能量感知调度(EAS)使调度器有能力预测其决策对CPU所消耗的能量的影响。EAS依靠
18 一个能量模型(EM)来为每个任务选择一个节能的CPU,同时最小化对吞吐率的影响。
24 /!\ EAS不支持对称CPU拓扑的平台 /!\
26 EAS只在异构CPU拓扑结构(如Arm大小核,big.LITTLE)上运行。因为在这种情况下,
59 简而言之,EAS改变了CFS任务分配给CPU的方式。当调度器决定一个任务应该在哪里
61 CPU中挑选一个经预测能量消耗最优的CPU。EAS的预测依赖于对平台拓扑结构特定元素
62 的了解,包括CPU的“算力”,以及它们各自的能量成本。
68 EAS(以及调度器的剩余部分)使用“算力”的概念来区分不同计算吞吐率的CPU。一个
69 CPU的“算力”代表了它在最高频率下运行时能完成的工作量,且这个值是相对系统中
70 算力最大的CPU而言的。算力值被归一化为1024以内,并且可与由实体负载跟踪
[all …]
Dsched-domains.rst18 每个CPU有一个“基”调度域(struct sched_domain)。调度域层次结构从基调度域构建而来,可
19 通过->parent指针自下而上遍历。->parent必须以NULL结尾,调度域结构体必须是per-CPU的,
22 每个调度域管辖数个CPU(存储在->span字段中)。一个调度域的span必须是它的子调度域span的
23 超集(如有需求出现,这个限制可以放宽)。CPU i的基调度域必须至少管辖CPU i。每个CPU
24 顶层调度域通常将会管辖系统中的全部CPU,尽管严格来说这不是必须的,假如是这样,会导致某些
25 CPU出现永远不会被指定任务运行的情况,直到允许的CPU掩码被显式设定。调度域的span字段意味
26 着“在这些CPU中做进程负载均衡”。
28 每个调度域必须具有一个或多个CPU调度组(struct sched_group),它们以单向循环链表的形式
29 组织,存储在->groups指针中。这些组的CPU掩码的并集必须和调度域span字段一致。->groups
30 指针指向的这些组包含的CPU,必须被调度域管辖。组包含的是只读数据,被创建之后,可能被多个
[all …]
Dschedutil.rst22 通过PELT,我们跟踪了各种调度器实体的一些指标,从单个任务到任务组分片到CPU
36 请注意,阻塞态的任务仍然对累加值(任务组分片和CPU运行队列)有贡献,这反映了
40CPU上花费的时间,而“可运行”反映了一个调度实体在运行队列中花费的时间。当只有
41 一个任务时,这两个指标是相同的,但一旦出现对CPU的争用,“运行”将减少以反映每个
42 任务在CPU上花费的时间,而“可运行”将增加以反映争用的激烈程度。
47 频率 / CPU不变性
50 因为CPU频率在1GHz时利用率为50%和CPU频率在2GHz时利用率为50%是不一样的,同样
78 r_cpu被定义为当前CPU的最高性能水平与系统中任何其它CPU的最高性能水平的比率。
82 其结果是,上述“运行”和“可运行”的指标变成DVFS无关和CPU型号无关了。也就是说,
83 我们可以在CPU之间转移和比较它们。
[all …]
Dsched-bwc.rst18 本文只讨论了SCHED_NORMAL的CPU带宽控制。
21 CFS带宽控制是一个CONFIG_FAIR_GROUP_SCHED扩展,它允许指定一个组或层次的最大CPU带宽。
24 达“配额”微秒的CPU时间。当cgroup中的线程可运行时,该配额以时间片段的方式被分配到每个cpu
60 CPU未被充分利用时,干扰是有限的。更多的细节显示在:
99 为了提高效率,运行时间在全局池和CPU本地“筒仓”之间以批处理方式转移。这大大减少了大型系统的全
118 - burst_time: 任何CPU在各个时期使用超过配额的累计壁钟时间(纳秒)。
163 给了这些应用程序一半的cpu-core,并且它们都被安排在同一个CPU上,理论上非cpu绑定的应用程序有
170 1. 限制一个组的运行时间为1个CPU的价值::
172 如果周期是250ms,配额也是250ms,那么该组将每250ms获得价值1个CPU的运行时间。
177 2. 在多CPU机器上,将一个组的运行时间限制为2个CPU的价值
[all …]
/linux-6.6.21/Documentation/translations/zh_CN/core-api/
Dcpu_hotplug.rst16 内核中的CPU热拔插
32 节点的插入和移除需要支持CPU热插拔。
34 这样的进步要求内核可用的CPU被移除,要么是出于配置的原因,要么是出于RAS的目的,
35 以保持一个不需要的CPU不在系统执行路径。因此需要在Linux内核中支持CPU热拔插。
37 CPU热拔插支持的一个更新颖的用途是它在SMP的暂停恢复支持中的应用。双核和超线程支
45 限制启动时的CPU为 *n* 个。例如,如果你有四个CPU,使用 ``maxcpus=2`` 将只能启
46 动两个。你可以选择稍后让其他CPU上线。
49 限制内核将支持的CPU总量。如果这里提供的数量低于实际可用的CPU数量,那么其他CPU
53 使用它来限制可热插拔的CPU。该选项设置
68 CPU位图
[all …]
Dthis_cpu_ops.rst22 this_cpu操作是一种优化访问与当前执行处理器相关的每CPU变量的方法。这是通过使用段寄
23 存器(或专用寄存器,cpu在其中永久存储特定处理器的每CPU区域的起始)来完成的。
25 this_cpu操作将每CPU变量的偏移量添加到处理器特定的每CPU基址上,并将该操作编码到对
26CPU变量进行操作的指令中。
36 器所特有的每CPU数据。只有当前的处理器可以访问该变量,因此系统中的其他处理器不存在
39 请注意,远程处理器对每CPU区域的访问是特殊情况,可能会影响通过 ``this_cpu_*`` 的本
66 在x86上,fs:或gs:段寄存器包含每CPU区域的基址。这样就可以简单地使用段覆盖,将每CPU
67 相对地址重定位到处理器适当的每CPU区域。所以对每CPU基址的重定位是通过段寄存器前缀
81 而不是像每CPU操作那样,先是一系列的地址计算,然后从该地址获取。在this_cpu_ops之前,
103 请注意,这些操作只能用于为特定处理器保留的每CPU数据。如果不在上下文代码中禁用抢占,
[all …]
Dworkqueue.rst40 在最初的wq实现中,多线程(MT)wq在每个CPU上有一个工作者线程,而单线程
41 (ST)wq在全系统有一个工作者线程。一个MT wq需要保持与CPU数量相同的工
42 作者数量。这些年来,内核增加了很多MT wq的用户,随着CPU核心数量的不断
47 工作者池。一个MT wq只能为每个CPU提供一个执行环境,而一个ST wq则为整个
60 * 使用由所有wq共享的每CPU统一的工作者池,在不浪费大量资源的情况下按
83 每个可能的CPU都有两个工作者池,一个用于正常的工作项,另一个用于高
90 标志包括诸如CPU定位、并发限制、优先级等等。要获得详细的概述,请参
95 否则一个绑定的工作队列的工作项将被排在与发起线程运行的CPU相关的普
102 每个与实际CPU绑定的worker-pool通过钩住调度器来实现并发管理。每当
104 运行的工作者的数量。一般来说,工作项不会占用CPU并消耗很多周期。这
[all …]
Drefcount-vs-atomic.rst38 子性和程序顺序(program order, po)关系(在同一个CPU上)。它保证每个
39 ``atomic_* ()`` 和 ``refcount_*()`` 操作都是原子性的,指令在单个CPU上按程序
42 强(完全)内存顺序保证在同一CPU上的所有较早加载和存储的指令(所有程序顺序较早
44 同一CPU上储存的程序优先较早的指令和来自其他CPU传播的指令必须在该CPU执行任何
45 程序顺序较后指令之前传播到其他CPU(A-累积属性)。这是用smp_mb()实现的。
47 RELEASE内存顺序保证了在同一CPU上所有较早加载和存储的指令(所有程序顺序较早
48 指令)在此操作前完成。它还保证同一CPU上储存的程序优先较早的指令和来自其他CPU
49 传播的指令必须在释放(release)操作之前传播到所有其他CPU(A-累积属性)。这是用
52 ACQUIRE内存顺序保证了同一CPU上的所有后加载和存储的指令(所有程序顺序较后
53 指令)在获取(acquire)操作之后完成。它还保证在获取操作执行后,同一CPU
[all …]
Dlocal_ops.rst19 如何正确使用这些操作。它还强调了在内存写入顺序很重要的情况下,跨CPU读取
33 本地原子操作的目的是提供快速和高度可重入的每CPU计数器。它们通过移除LOCK前
34 缀和通常需要在CPU间同步的内存屏障,将标准原子操作的性能成本降到最低。
36 在许多情况下,拥有快速的每CPU原子计数器是很有吸引力的:它不需要禁用中断来保护中
40 本地原子操作只保证在拥有数据的CPU上的变量修改的原子性。因此,必须注意确保只
41 有一个CPU写到 ``local_t`` 的数据。这是通过使用每CPU的数据来实现的,并确
42 保我们在一个抢占式安全上下文中修改它。然而,从任何一个CPU读取 ``local_t``
43 数据都是允许的:这样它就会显得与所有者CPU的其他内存写入顺序不一致。
66 * *只有* 这些变量的CPU所有者才可以写入这些变量。
68 * 这个CPU可以从任何上下文(进程、中断、软中断、nmi...)中使用本地操作来更新
[all …]
/linux-6.6.21/Documentation/translations/ko_KR/
Dmemory-barriers.txt93 - CPU 메모리 배리어.
102 (*) CPU 간 ACQUIRING 배리어의 효과.
117 (*) CPU 캐시의 영향.
123 (*) CPU 들이 저지르는 일들.
147 | CPU 1 |<----->| Memory |<----->| CPU 2 |
164 프로그램은 여러 메모리 액세스 오퍼레이션을 발생시키고, 각각의 CPU 는 그런
165 프로그램들을 실행합니다. 추상화된 CPU 모델에서 메모리 오퍼레이션들의 순서는
166 매우 완화되어 있고, CPU 는 프로그램이 인과관계를 어기지 않는 상태로 관리된다고
172 따라서 위의 다이어그램에서 한 CPU가 동작시키는 메모리 오퍼레이션이 만들어내는
173 변화는 해당 오퍼레이션이 CPU 와 시스템의 다른 부분들 사이의 인터페이스(점선)를
[all …]
/linux-6.6.21/Documentation/translations/zh_CN/mm/
Dmmu_notifier.rst17 对于二级TLB(非CPU TLB),如IOMMU TLB或设备TLB(当设备使用类似ATS/PASID的东西让
18 IOMMU走CPU页表来访问进程的虚拟地址空间)。只有两种情况需要在清除pte/pmd时在持有页
43 CPU-thread-0 {尝试写到addrA}
44 CPU-thread-1 {尝试写到addrB}
45 CPU-thread-2 {}
46 CPU-thread-3 {}
50 CPU-thread-0 {COW_step0: {mmu_notifier_invalidate_range_start(addrA)}}
51 CPU-thread-1 {COW_step0: {mmu_notifier_invalidate_range_start(addrB)}}
52 CPU-thread-2 {}
53 CPU-thread-3 {}
[all …]
Dhmm.rst18 HMM 还为 SVM(共享虚拟内存)提供了可选的帮助程序,即允许设备透明地访问与 CPU 一致的程序
19 地址,这意味着 CPU 上的任何有效指针也是该设备的有效指针。这对于简化高级异构计算的使用变得
23 部分中,我揭示了许多平台固有的硬件限制。第三部分概述了 HMM 设计。第四部分解释了 CPU
64 内存访问;甚至缓存一致性通常是可选的。从 CPU 访问设备内存甚至更加有限。通常情况下,它
67 如果我们只考虑 PCIE 总线,那么设备可以访问主内存(通常通过 IOMMU)并与 CPU 缓存一
68 致。但是,它只允许设备对主存储器进行一组有限的原子操作。这在另一个方向上更糟:CPU
77 (OpenCAPI、CCIX)。它们主要允许 CPU 和设备之间的双向缓存一致性,并允许架构支持的所
82 存在设备使用时迁移到设备内存(在迁移时阻止 CPU 访问)。
91 为了实现这一点,HMM 提供了一组帮助程序来填充设备页表,同时跟踪 CPU 页表更新。设备页表
92 更新不像 CPU 页表更新那么容易。要更新设备页表,您必须分配一个缓冲区(或使用预先分配的
[all …]
Dnuma.rst18 从硬件角度看,NUMA系统是一个由多个组件或装配组成的计算机平台,每个组件可能包含0个或更多的CPU
28 所有的内存都是可见的,并且可以从连接到任何单元的任何CPU中访问,缓存一致性是由处理器缓存和/或
31 内存访问时间和有效的内存带宽取决于包含CPU的单元或进行内存访问的IO总线距离包含目标内存的单元
32 有多远。例如,连接到同一单元的CPU对内存的访问将比访问其他远程单元的内存经历更快的访问时间和
42 上,对一些架构的细节进行了抽象。与物理单元一样,软件节点可能包含0或更多的CPU、内存和/或IO
47 的任何CPU重新分配到代表有内存的单元的节点上。因此,在这些架构上,我们不能假设Linux将所有
48CPU与一个给定的节点相关联,会看到相同的本地内存访问时间和带宽。
66 默认情况下,Linux会尝试从执行请求的CPU被分配到的节点中满足内存分配请求。具体来说,Linux将试
76 系统管理员和应用程序设计者可以使用各种CPU亲和命令行接口,如taskset(1)和numactl(1),以及程
81 系统管理员可以使用控制组和CPUsets限制非特权用户在调度或NUMA命令和功能中可以指定的CPU和节点
[all …]
/linux-6.6.21/Documentation/translations/zh_CN/driver-api/
Dio_ordering.rst28 CPU A: spin_lock_irqsave(&dev_lock, flags)
29 CPU A: val = readl(my_status);
30 CPU A: ...
31 CPU A: writel(newval, ring_ptr);
32 CPU A: spin_unlock_irqrestore(&dev_lock, flags)
34 CPU B: spin_lock_irqsave(&dev_lock, flags)
35 CPU B: val = readl(my_status);
36 CPU B: ...
37 CPU B: writel(newval2, ring_ptr);
38 CPU B: spin_unlock_irqrestore(&dev_lock, flags)
[all …]
/linux-6.6.21/arch/sparc/kernel/
Dcpu.c54 #define CPU(ver, _name) \ macro
68 CPU(0, "Fujitsu MB86900/1A or LSI L64831 SparcKIT-40"),
70 CPU(4, "Fujitsu MB86904"),
71 CPU(5, "Fujitsu TurboSparc MB86907"),
72 CPU(-1, NULL)
88 CPU(0, "LSI Logic Corporation - L64811"),
90 CPU(1, "Cypress/ROSS CY7C601"),
92 CPU(3, "Cypress/ROSS CY7C611"),
94 CPU(0xf, "ROSS HyperSparc RT620"),
95 CPU(0xe, "ROSS HyperSparc RT625 or RT626"),
[all …]
/linux-6.6.21/Documentation/translations/zh_TW/
Dio_ordering.txt35 CPU A: spin_lock_irqsave(&dev_lock, flags)
36 CPU A: val = readl(my_status);
37 CPU A: ...
38 CPU A: writel(newval, ring_ptr);
39 CPU A: spin_unlock_irqrestore(&dev_lock, flags)
41 CPU B: spin_lock_irqsave(&dev_lock, flags)
42 CPU B: val = readl(my_status);
43 CPU B: ...
44 CPU B: writel(newval2, ring_ptr);
45 CPU B: spin_unlock_irqrestore(&dev_lock, flags)
[all …]
/linux-6.6.21/Documentation/translations/zh_CN/admin-guide/
Dcputopology.rst11 如何通过sysfs将CPU拓扑导出
14 CPU拓扑信息通过sysfs导出。显示的项(属性)和某些架构的/proc/cpuinfo输出相似。它们位于
50 7) topology_sibling_cpumask: 仅入参CPU
51 8) topology_core_cpumask: 仅入参CPU
52 9) topology_cluster_cpumask: 仅入参CPU
53 10) topology_die_cpumask: 仅入参CPU
54 11) topology_book_cpumask: 仅入参CPU
55 12) topology_drawer_cpumask: 仅入参CPU
57 此外,CPU拓扑信息由/sys/devices/system/cpu提供,包含下述文件。输出对应的内部数据源放在
61 kernel_max: 内核配置允许的最大CPU下标值。[NR_CPUS-1]
[all …]
/linux-6.6.21/Documentation/translations/zh_CN/cpu-freq/
Dcpu-drivers.rst30 1.2 Per-CPU 初始化
43 如果,你刚刚得到了一个全新的CPU/芯片组及其数据手册,并希望为这个CPU/芯片组添加cpufreq
51 运行在正确的CPU和正确的芯片组上。如果是,则使用cpufreq_register_driver()向
71 .get_intermediate 和 target_intermediate - 用于在改变CPU频率时切换到稳定
74 .get - 返回CPU的当前频率。
76 .bios_limit - 返回HW/BIOS对CPU的最大频率限制值。
78 .exit - 一个指向per-policy清理函数的指针,该函数在CPU热插拔过程的CPU_POST_DEAD
97 1.2 Per-CPU 初始化
100 每当一个新的CPU被注册到设备模型中,或者当cpufreq驱动注册自身之后,如果此CPU的cpufreq策
102 只为某个策略调用一次,而不是对该策略管理的每个CPU调用一次。它需要一个 ``struct cpufreq_policy
[all …]
/linux-6.6.21/Documentation/driver-api/
Dio_ordering.rst18 CPU A: spin_lock_irqsave(&dev_lock, flags)
19 CPU A: val = readl(my_status);
20 CPU A: ...
21 CPU A: writel(newval, ring_ptr);
22 CPU A: spin_unlock_irqrestore(&dev_lock, flags)
24 CPU B: spin_lock_irqsave(&dev_lock, flags)
25 CPU B: val = readl(my_status);
26 CPU B: ...
27 CPU B: writel(newval2, ring_ptr);
28 CPU B: spin_unlock_irqrestore(&dev_lock, flags)
[all …]
/linux-6.6.21/Documentation/translations/zh_CN/arch/arm64/
Dbooting.txt41 这个术语来定义在将控制权交给 Linux 内核前 CPU 上执行的所有软件。
153 - 主 CPU 通用寄存器设置
159 - CPU 模式
162 CPU 必须处于 EL2(推荐,可访问虚拟化扩展)或非安全 EL1 模式下。
178 CNTFRQ 必须设定为计时器的频率,且 CNTVOFF 必须设定为对所有 CPU
183 通过内核启动的所有 CPU 在内核入口地址上必须处于相同的一致性域中。
184 这可能要根据具体实现来定义初始化过程,以使能每个CPU上对维护操作的
207 以上对于 CPU 模式、高速缓存、MMU、架构计时器、一致性、系统寄存器的
208 必要条件描述适用于所有 CPU。所有 CPU 必须在同一异常级别跳入内核。
210 引导装载程序必须在每个 CPU 处于以下状态时跳入内核入口:
[all …]
/linux-6.6.21/Documentation/arch/x86/
Dtopology.rst84 A per-CPU variable containing:
114 CPU.
152 The alternative Linux CPU enumeration depends on how the BIOS enumerates the
154 That has the "advantage" that the logical Linux CPU numbers of threads 0 stay
160 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
166 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
167 -> [core 1] -> [thread 0] -> Linux CPU 1
171 [package 0] -> [core 0] -> [thread 0] -> Linux CPU 0
172 -> [thread 1] -> Linux CPU 1
173 -> [core 1] -> [thread 0] -> Linux CPU 2
[all …]
/linux-6.6.21/Documentation/translations/zh_TW/arch/arm64/
Dbooting.txt45 這個術語來定義在將控制權交給 Linux 內核前 CPU 上執行的所有軟體。
157 - 主 CPU 通用寄存器設置
163 - CPU 模式
166 CPU 必須處於 EL2(推薦,可訪問虛擬化擴展)或非安全 EL1 模式下。
182 CNTFRQ 必須設定爲計時器的頻率,且 CNTVOFF 必須設定爲對所有 CPU
187 通過內核啓動的所有 CPU 在內核入口地址上必須處於相同的一致性域中。
188 這可能要根據具體實現來定義初始化過程,以使能每個CPU上對維護操作的
211 以上對於 CPU 模式、高速緩存、MMU、架構計時器、一致性、系統寄存器的
212 必要條件描述適用於所有 CPU。所有 CPU 必須在同一異常級別跳入內核。
214 引導裝載程序必須在每個 CPU 處於以下狀態時跳入內核入口:
[all …]
/linux-6.6.21/Documentation/mm/
Dmmu_notifier.rst8 For secondary TLB (non CPU TLB) like IOMMU TLB or device TLB (when device use
9 thing like ATS/PASID to get the IOMMU to walk the CPU page table to access a
39 CPU-thread-0 {try to write to addrA}
40 CPU-thread-1 {try to write to addrB}
41 CPU-thread-2 {}
42 CPU-thread-3 {}
46 CPU-thread-0 {COW_step0: {mmu_notifier_invalidate_range_start(addrA)}}
47 CPU-thread-1 {COW_step0: {mmu_notifier_invalidate_range_start(addrB)}}
48 CPU-thread-2 {}
49 CPU-thread-3 {}
[all …]

12345678910>>...52