大家好,欢迎来到IT知识分享网。
项目场景:
项目中需要做C-State测试,即需要支持intel_idle cpuidle驱动和 acpi_idle cpuidle驱动
问题描述
使用cpupower 工具读取CPU信息,C-State(intel_idle cpuidle驱动)应该显示intel_idle,而实际显示none
原因分析:
1、驱动是否已经编译进内核?
grep INTEL_IDLE -rn /boot/config*
从内核配置看,intel_idle驱动已经buildin 进内核
2、该内核版本的驱动是否支持该CPU芯片?
我们内核是基于 5.4.210内核版本进行分析:
1.从dmesg中log报错,有个intel_idle驱动probe失败导致:
2. 驱动probe函数定位,根据打印信息显示 该CPU family为6,model为108(0x6C)
3.查看该版本内核intel_idle驱动中(intel_idle_ids) id table中,并不支持ICELAKE_D,
分析结论:5.4.210内核的intel_idle驱动并不支持 ICELAKE_D型号CPU
解决方案:
移植高版本内核已支持intel_idle ICELAKE_D芯片,经查找 5.14.0-284.11.1版本的intel_idle驱动才支持该芯片,移植 5.14.0版本的intel_idle驱动到5.4.210中,验证PASS
bios配置:
ADD: 如果需要支持apci_idle驱动,则需要做以下配置:
(1)bios配置:
将BIOS选项Enhanced Halt State (C1E)设置为Disabled,Monitor MWAIT设置为Enabled,CPU C6 report设置为Enabled
(2)grub设置 idle=nomwait
(3)结果如图:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/150091.html