【环境信息】
系统:x86_64物理机
转测20.03-LTS-SP2第二轮版本
【问题复现步骤】
挂载OS镜像,软件选择处选择虚拟化
安装成功后启动
modprobe acpi_cpufreq
lsmod | grep cpufreq
【预期结果】
模块加载成功,lsmod可以查看到模块或者模块加载失败,modprobe有FAIL打印
【实际结果】
Hey baizhilaoda, Welcome to openEuler Community.
All of the projects in openEuler Community are maintained by @openeuler-ci-bot.
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md to find the details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
acpi_cpufreq 肯定没加载上的。
目前 X86 使用的调频驱动都是 intel_pstate 调频驱动
systemd 刚开始去检查 /sys/module/acpi_cpufreq 的目录,但是这个驱动没有加载,因此不会有这个目录。
将该 CONFIG 设置成 Y
这个目录就正常有了
但是 initstate 这个目录是不会有的,因为不是按照模块加载的。
调试驱动加载过程
perf probe layout_and_allocate
perf probe find_module_sections
echo 1 > /sys/kernel/debug/tracing/events/module/module_load/enable
开启initcall 调试
echo 1 > /sys/module/kernel/parameters/initcall_debug
echo 1 > /sys/kernel/debug/tracing/events/initcall/enable
可以看到驱动其实返回了 -17
21 #define EEXIST 17 /* File exists */
perf trace modprobe acpi-cpufreq
1.747 ( 0.004 ms): modprobe/3833 mmap(len: 453137, prot: READ, flags: PRIVATE, fd: 3 ) = 0x7fa9b8b92000
1.752 (21.456 ms): modprobe/3833 finit_module(fd: 3</usr/lib/modules/4.19.90+/kernel/drivers/cpufreq/acpi-cpufreq.ko>, uargs: 0x562611d1f410) = -1 EEXIST File exists
23.216 ( 0.005 ms): modprobe/3833 munmap(addr: 0x7fa9b8b92000, len: 453137 ) = 0
23.223 ( 0.002 ms): modprobe/3833 close(fd: 3</usr/lib/modules/4.19.90+/kernel/drivers/cpufreq/acpi-cpufreq.ko>) = 0
23.227 ( 0.006 ms): modprobe/3833 munmap(addr: 0x7fa9b8d41000, len: 360471 ) = 0
23.235 ( 0.008 ms): modprobe/3833 munmap(addr: 0x7fa9b8c77000, len: 823906 ) = 0
23.245 ( 0.008 ms): modprobe/3833 munmap(addr: 0x7fa9b8c01000, len: 479339 ) = 0
23.255 ( 0.004 ms): modprobe/3833 munmap(addr: 0x7fa9b92d0000, len: 21223 ) = 0
23.261 ( 0.003 ms): modprobe/3833 munmap(addr: 0x7fa9b92cd000, len: 9854 ) = 0
23.284 ( ): modprobe/3833 exit_group(
可以看到 modprobe 不会把 EEXIST 当成错误(因为在他看来,你的设备已经找到了合适的驱动)
使用 insmod 可以看到实际的返回信息
insmod acpi-cpufreq.ko
insmod: ERROR: could not insert module acpi-cpufreq.ko: File exists
至于 systemd 在启动阶段,为什么要去插入和读取 acpi_cpufreq 驱动。
麻烦找负责 systemd 的兄弟确认下
该错误没啥实际影响。
建议 issue 关掉吧。谢谢
登录 后才可以发表评论