我正在尝试使用 msr-tools 禁用运行 20.04 的 Xeon 芯片上的预取器。它依赖于 中的 msr 文件夹/dev/cpu/CPU_NUM/msr
。但是,由于某种原因,这些文件夹不存在。还有其他方法可以在 20.04 上禁用预取吗?我在其他地方查找过 msr 文件夹,但找不到它们。它们位于 20.04 的其他地方吗?是否有其他适用于 ubuntu 的工具或我应该使用的更新工具?
谢谢!!
答案1
这些文件/dev/cpu/CPU_NUM/msr
以及msr-tools
提供的读写 msr 命令通过模块与内核交互msr
,模块必须在使用 rdmsr 或 wrmsr 命令之前加载。错误报告不存在或不太好,因此如果模块加载过多,可能不明显哪里出了问题。
示例(没有 msr 模块,然后使用 msr 模块):
doug@s18:~$ ls -l /dev/cpu
total 0
crw------- 1 root root 10, 184 Oct 19 08:34 microcode
doug@s18:~$ sudo rdmsr 0x198
rdmsr: open: No such file or directory
doug@s18:~$ sudo modprobe msr
doug@s18:~$ ls -l /dev/cpu
total 0
drwxr-xr-x 2 root root 60 Oct 19 08:37 0
drwxr-xr-x 2 root root 60 Oct 19 08:37 1
drwxr-xr-x 2 root root 60 Oct 19 08:37 2
drwxr-xr-x 2 root root 60 Oct 19 08:37 3
drwxr-xr-x 2 root root 60 Oct 19 08:37 4
drwxr-xr-x 2 root root 60 Oct 19 08:37 5
crw------- 1 root root 10, 184 Oct 19 08:34 microcode
doug@s18:~$ ls -l /dev/cpu/0
total 0
crw------- 1 root root 202, 0 Oct 19 08:37 msr
doug@s18:~$ sudo rdmsr 0x198
279f00002e00
关于未来的重要提示:在即将推出的内核中(我认为从 5.9 开始),用户对 MSR(机器特定寄存器)的写访问将受到限制。需要启用访问权限。我使用 grub 命令行选项:
GRUB_CMDLINE_LINUX_DEFAULT= "msr.allow_writes=on"
启动后也可以通过 更改写入 msr 的能力/sys/module/msr/parameters/allow_writes
。例如:
doug@s18:~$ sudo cat /sys/module/msr/parameters/allow_writes
off
doug@s18:~$ sudo wrmsr 0x19c 0
wrmsr: pwrite: Operation not permitted
doug@s18:~$ echo on | sudo tee /sys/module/msr/parameters/allow_writes
on
doug@s18:~$ sudo cat /sys/module/msr/parameters/allow_writes
on
doug@s18:~$ sudo wrmsr 0x19c 0
doug@s18:~$
注意:我知道将 0 写入 19C (IA32_THERM_STATUS) 是可以的