gpt4 book ai didi

linux-kernel - 如何设置 intel_idle.max_cstate=0 来禁用 c-states?

转载 作者:行者123 更新时间:2023-12-04 00:11:01 35 4
gpt4 key购买 nike

我想在我的计算机上禁用 c 状态。

我在 BIOS 上禁用了 c-state,但没有得到任何结果。但是,我找到了一个解释:
“大多数较新的 Linux 发行版,在具有 Intel 处理器的系统上,使用“intel_idle”驱动程序(可能编译到您的内核中而不是单独的模块)来使用 C 状态。该驱动程序使用各种 CPU 的知识来控制 C 状态,而无需来自系统固件 (BIOS) 的输入。此驱动程序将主要忽略任何其他 BIOS 设置和内核参数“

我找到了两种解决方案来解决这个问题,但我不知道如何应用:

1) "所以如果你想控制 C 状态,你应该使用内核参数 "intel_idle.max_cstate=0"来禁用这个驱动程序。"

我既不知道如何检查(intel_idle.max_cstate 的)值,也不知道如何更改其值。

2)“要动态控制C-states,打开文件/dev/cpu_dma_latency并写入最大允许延迟。这将防止使用转换延迟高于指定值的C-states,只要文件/dev/cpu_dma_latency 保持打开状态。写入最大允许延迟 0 将使处理器保持在 C0"

我无法读取文件 cpu_dma_latency。

谢谢你的帮助。

电脑:
英特尔至强 CPU E5-2620
侏儒 2.28.2
Linux 2.6.32-358

最佳答案

要在引导时更改该值,您可以修改 GRUB 配置或即时编辑它——修改方法因发行版而异。 This是用于单次启动或永久更改内核参数的 Ubuntu 文档。对于 RHEL 派生的发行版,我看不到非常清楚的文档,但是您直接修改/boot/grub/grub.conf 以在每个可引导节的“内核”行中包含参数。

对于问题的第二部分,许多设备文件是只读或只写的。您可以使用这样的小型 perl 脚本(未经测试且不是很干净,但应该可以)来保持文件打开:

#!/usr/bin/perl

use FileHandle;
my $fd = open (">/dev/cpu_dma_latency");
print $fd "0";
print "Press CTRL-C to end.\n";

while (1) {
sleep 5;
}

Redhat 在知识库文章 here 中有一个 C 片段以及参数的更多描述。

关于linux-kernel - 如何设置 intel_idle.max_cstate=0 来禁用 c-states?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22482252/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com