linux释放缓存,linux查看cpu缓存大小,如何在Linux中获取CPU Cache的大小

 2023-09-22 阅读 24 评论 0

摘要:对于运行Linux的ARM CPU(在具有Raspbian(32位)的Raspberry Pi 3B +上测试):“ArmCortex-A53MPCore处理器技术参考手册”中的一章是“缓存大小选择寄存器”和“缓存大小ID”注册”,包括汇编程序指令。这些汇编器指令已经可以在Linux内核头文件asm / cachetyp

对于运行Linux的ARM CPU(在具有Raspbian(32位)的Raspberry Pi 3B +上测试):

“Arm®Cortex®-A53MPCore处理器技术参考手册”中的一章是“缓存大小选择寄存器”和“缓存大小ID”注册”,包括汇编程序指令。

这些汇编器指令已经可以在Linux内核头文件asm / cachetype.h中使用:set_csselr(...)和read_ccsidr(),但是无法在用户模式下调用这些函数,因此我们需要构建一个内核模块以获取/打印值:

linux释放缓存、Makefile:

obj-m += cachesize.o

all:

make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

centos查看内存大小命令、clean:

make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

文件cachesize.c:

#include

cpu二级缓存重要吗,#include

#include

#include

MODULE_LICENSE("GPL");

linux缓存自动清理。MODULE_AUTHOR("Abc defg");

MODULE_DESCRIPTION("Find out ARM cache sizes");

MODULE_VERSION("0.01");

static int __init lkm_example_init(void) {

centos查看cpu,// Must run in kernel mode

// Assumptions: L1 (instructions + data), L2 (check your CPU manual)

set_csselr(0);

printk(KERN_INFO "ccsidr L1 data cache = %08x\n", read_ccsidr());

cpu缓存作用、set_csselr(1);

printk(KERN_INFO "ccsidr L1 instruction cache = %08x\n", read_ccsidr());

set_csselr(2);

printk(KERN_INFO "ccsidr L2 unified = %08x\n", read_ccsidr());

处理器缓存、return 0;

}

static void __exit lkm_example_exit(void) {

printk(KERN_INFO "Goodbye, World!\n");

}

module_init(lkm_example_init);

module_exit(lkm_example_exit);

然后:

make

insmode cachesize.ko

rmmod cachesize

dmesg | tail

# Compare numbers to the table "CCSIDR encodings" in the "ARM ... Technical Reference Manual"

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/81756.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息