企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
https://blog.csdn.net/jvyiming1988/article/details/8315456 # disableCache.c ``` #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int disableCache_init(void) { printk(KERN_ALERT "Disabling L1 and L2 caches.\n"); __asm__(".intel_syntax noprefix\n\t" "mov rax,cr0\n\t" "or rax,(1 << 30)\n\t" "mov cr0,rax\n\t" "wbinvd\n\t" ".att_syntax noprefix\n\t" : : : "rax" ); return 0; } static void disableCache_exit(void) { printk(KERN_ALERT "Enabling L1 and L2 caches.\n"); __asm__(".intel_syntax noprefix\n\t" "mov rax,cr0\n\t" "and rax,~(1 << 30)\n\t" "mov cr0,rax\n\t" "wbinvd\n\t" ".att_syntax noprefix\n\t" : : : "rax" ); } module_init(disableCache_init); module_exit(disableCache_exit); ``` 已修改:如果是64位系统,则make file中 -m32 改为-m64同时code 中所有的eax改为rax. # Makefile ``` KERNEL_DIR:=/usr/src/linux-source-4.19 EXTRA_CFLAGS = -m64 obj-m += disableCache.o all: $(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules clean: $(RM).*.cmd *.mod.c *.o -r .tmp ``` # 载入内核 ``` insmod ./disableCache.ko ```