Print

linux下屏蔽intel cpu指令集

2024-09-12 发表

组网及说明

intel平台+linux系统

问题描述

由于某些应用程序特定的原因,需要将CPU指令集关闭。

如HLE与RTM两个指令集,会影响上层虚拟机迁移,需要关闭。

过程分析

绝大部分BIOS配置都不会改变CPU本身的功能,如没有确切选项的情况下,要从系统下屏蔽。

修改之前:

为了禁用它,我们需要从源代码中识别 x86 架构的功能/标志的位号,以及应用于引导 CMDLINE 所需的内核参数。

我们找到 clearcpuid 参数,其描述如下:

我们需要找到此功能的有效位号,可以在下边源代码文件中找到该位号。

https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/cpufeatures.h

HLE 功能与位号9 × 32 + 4 = 292,RTM 9 × 32 + 11 = 299

 修改/etc/default/grub,添加clearcpuid=292 clearcpuid=299

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 重新构建 grub 配置文件即可禁用。

重启后功能禁用:

 

解决方法

方法如上