Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux-kernel – 如何设置intel_idle.max_cstate = 0来禁用c状态?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

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

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

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

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

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

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

我无法读取文件cpu_dma_latency.

谢谢你的帮助.

电脑:@H_301_3@Intel Xeon cpu E5-2620@H_301_3@侏儒2.28.2@H_301_3@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在KB文章here中也有一个C片段以及参数的更多描述.

大佬总结

以上是大佬教程为你收集整理的linux-kernel – 如何设置intel_idle.max_cstate = 0来禁用c状态?全部内容,希望文章能够帮你解决linux-kernel – 如何设置intel_idle.max_cstate = 0来禁用c状态?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。