linux使用cpu缓存,解决方案:如何在Linux中获取CPU缓存的大小
对于运行Linux的ARM CPU(在具有Raspbian(32位)的Raspberry Pi 3B +上测试):
“Arm®Cortex®-A53MPCore处理器技术参考手册”中的章节是“高速缓存大小选择寄存器”和“高速缓存大小ID”注册,其中包括汇编程序指令。
这些汇编程序指令已经可以在Linux内核头文件asm / cachetype.h中使用:set_csselr(...)和read_ccsidr(),但是无法在用户模式下调用这些函数,因此我们需要构建内核模块获取/打印值:
Makefile:
obj-m += cachesize.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
文件cachesize.c:
#include #include #include #include MODULE_LICENSE("GPL");
MODULE_AUTHOR("Abc defg");
MODULE_DESCRIPTION("Find out ARM cache sizes");
MODULE_VERSION("0.01");
static int __init lkm_example_init(void) {
// Must run in kernel mode
// Assumptions: L1 (instructions + data), L2 (check your CPU manual)
set_csselr(0);
printk(KERN_INFO "ccsidr L1 data cache = x\n", read_ccsidr());
set_csselr(1);
printk(KERN_INFO "ccsidr L1 instruction cache = x\n", read_ccsidr());
set_csselr(2);
printk(KERN_INFO "ccsidr L2 unified = x\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"
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-344510-1.html
linux使用cpu缓存,解决方案:如何在Linux中获取CPU缓存的大小相关推荐
- python 获取cpu使用率_如何在python中获取过去10分钟的cpu使用率
要测量CPU使用率,您需要比较两个给定时间的使用情况:您无法从过去获得度量点(除非您存储它,如@ajsp建议的那样).在 例如:import psutil import time def calcul ...
- 如何在 .NET Core 中获取 CPU 使用率
这篇文章我们分享一种如何在 .NETCore 中获取 CPU使用率的方法, 它所报告的这个值和 任务管理器 中报告的 CPU 使用值 差不多是一致的. 在 .NET Framework 中,很多人会用 ...
- 如何在PHP中获取客户端IP地址[重复]
本文翻译自:How to get the client IP address in PHP [duplicate] This question already has an answer here: ...
- java如何实取随机数_java - 如何在Kotlin中获取随机数?
java - 如何在Kotlin中获取随机数? 可以在2个参数之间返回随机整数的通用方法,如ruby,可以使用rand(0..n). 有什么建议吗? 16个解决方案 208 votes 我的建议是In ...
- php mysql 到表最后_如何在PHP中获取MySQL表的最后插入ID?
如何在PHP中获取MySQL表的最后插入ID? 我有一张表,经常插入新数据. 我需要获取表格的最后一个ID. 我怎样才能做到这一点? 它类似于SELECT MAX(id) FROM table吗? g ...
- 如何在Python中获取文件创建和修改日期/时间?
我有一个脚本,该脚本需要根据文件创建和修改日期执行一些操作,但必须在Linux和Windows上运行. 在Python中获取文件创建和修改日期/时间的最佳跨平台方法是什么? #1楼 最好的功能是os. ...
- 如何在 JavaScript 中获取当前日期?
问: 想要改进这篇文章?提供这个问题的详细答案,包括引文和解释为什么你的答案是正确的.没有足够细节的答案可能会被编辑或删除. 如何在 JavaScript 中获取当前日期? 答1: HuntsBot周 ...
- html 获取文本框值,html - 如何在JavaScript中获取文本框值
html - 如何在JavaScript中获取文本框值 我正在尝试使用JavaScript从HTML文本框中获取值,但值不是在空格之后 例如: 我只得到:上面的"软件". 我正在使 ...
- java+script+当前日期_如何在JavaScript中获取当前日期?
如何在JavaScript中获取当前日期? #1楼 您可以使用扩展了 Date对象的Date.js库,从而可以使用.today()方法. #2楼 如果您想对日期格式进行更多的粒度控制,我强烈建议您查看 ...
- 如何在JavaScript中获取时间戳
如何在JavaScript中获取时间戳 +运算符 我们可以使用+运算符将日期对象直接转换为UNIX时间戳. 例如,我们可以这样写: +new Date() +日期对象之前操作者触发valueOf的方法 ...
最新文章
- network package url_inaddr
- python四大软件-PYPL 9月编程语言排行榜发布 Python一枝独秀
- c++调用Java以及string互转
- 在类模板的声明和定义中把.h与.cpp分离
- 很简单很简单的DBHelper类
- 对OIM Web(UI)层进行压力测试
- c语言字符指针初始化赋值,C语言_指针变量的赋值与运算,很详细详解
- C++ template —— 动多态与静多态(六)
- 前端如何玩转虚拟机_想运行虚拟机,用win10自带的Hyper-V即可,不用安装其它软件...
- PHP 显示信息到控制台console
- Vhost dataplane in Qemu | PDF
- 单片机c32语言,单片机课件c32IO口.ppt
- ios13文件管理器 连接服务器,支持鼠标、文件管理—IOS13和iPad OS深度体验报告
- 位居榜首 | 未来智安荣登CCIA「2022年中国网安产业潜力之星」榜单
- 前端学习-数据可视化(个人笔记)
- 照片在计算机打不开怎么回事,电脑上图片打不开怎么办
- kakfka2.2源码分析之handleFetchRequest
- Visual Studio 2017下载地址和安装教程(图解版)
- mysql查看时区 go时区问题
- php落寞了,日渐唱衰的php是否真的已经不堪一击了?
热门文章
- 易建科技eKing Cloud招聘,快到碗里来~
- 【优化算法】矮猫鼬优化算法(DMO)【含Matlab源码 611期】
- 【数字信号调制】基于matlab GUI数字信号调制系统【含Matlab源码 258期】
- 【优化预测】基于matlab贝叶斯网络优化LSTM预测【含Matlab源码 1158期】
- 【情感识别】基于matlab支持向量机(SVM)语音情感识别【含Matlab源码 543期】
- 从头实现linux操作系统_从头开始实现您的第一个人工神经元
- java 设计模式的相似_聊聊Java中几种常用的设计模式
- java8 merge_给老弟讲解java8中的marge()方法,一顿骚操作
- java连oracle报17002,帮忙给看一个java访问oracle的异常
- js src 变量_人人都能看懂的鸿蒙 “JS 小程序” 数据绑定原理