numactl -hardware源码分析
来源:互联网 发布:淘宝无法用网银支付 编辑:程序博客网 时间:2024/06/05 07:13
https://github.com/jmesmon/numactl/blob/0df3f720e606a3706700e0487ba19d720f50c4b8/numactl.c
可以看到numactl总共支持的命令如下:struct option opts[] = {
{"interleave", 1, 0, 'i' },
{"preferred", 1, 0, 'p' },
{"cpubind", 1, 0, 'c' },
{"cpunodebind", 1, 0, 'N' },
{"physcpubind", 1, 0, 'C' },
{"membind", 1, 0, 'm'},
{"show", 0, 0, 's' },
{"localalloc", 0,0, 'l'},
{"hardware", 0,0,'H' },
{"shm", 1, 0, 'S'},
{"file", 1, 0, 'f'},
{"offset", 1, 0, 'o'},
{"length", 1, 0, 'L'},
{"strict", 0, 0, 't'},
{"shmmode", 1, 0, 'M'},
{"dump", 0, 0, 'd'},
{"dump-nodes", 0, 0, 'D'},
{"shmid", 1, 0, 'I'},
{"huge", 0, 0, 'u'},
{"touch", 0, 0, 'T'},
{"verify", 0, 0, 'V'}, /* undocumented - for debugging */
{ 0 }
};
我们重点看先hardware命令的实现,如下所示
void hardware(void)
{
int i;
int numnodes=0;
int prevnode=-1;
int skip=0;
int maxnode = numa_max_node();
for (i = 0; i <= maxnode; i++) {
char buf[64];
long long fr;
unsigned long long sz = numa_node_size64(i, &fr);
if (!numa_bitmask_isbitset(numa_nodes_ptr, i))
continue;
printf("node %d cpus:", i);
print_node_cpus(i);
printf("node %d size: %s\n", i, fmt_mem(sz, buf));
printf("node %d free: %s\n", i, fmt_mem(fr, buf));
}
print_distances(maxnode);
}
原来是通过fr得到free的size,而fr是从numa_node_size64(i, &fr)得到的值
long long numa_node_size64(int node, long long *freep)
{
size_t len = 0;
char *line = NULL;
long long size = -1;
FILE *f;
char fn[64];
int ok = 0;
int required = freep ? 2 : 1;
if (freep)
*freep = -1;
sprintf(fn,"/sys/devices/system/node/node%d/meminfo", node);
}
原来numa_node_size64也是从kernel 里面parse meminfo的值
0 0
- numactl -hardware源码分析
- <5>Android HAL hardware.h 源码文件分析 路径:/hardware/libhardware/include/hardware/hardware.h
- Android硬件抽象Hardware库加载过程源码分析
- android hardware 简述(Android系统源码情景分析 笔记)
- numactl mongodb
- numactl -H
- android hardware 分析
- hardware
- Android源码hardware目录结构详解
- 一、Camera2 操作android.hardware.Camera 分析
- Android中hardware源码(android-5.0.2)
- Android2.2、Android2.3 、Android4.0 audio hardware模块分析
- Android HAL hardware module分析 以GPS module为例
- Android HAL hardware module分析 以GPS module为例
- Android HAL hardware module分析 以GPS module为例
- Android硬件抽象层HAL(Hardware abstraction layer)分析
- 一次mmc0: Timeout waiting for hardware interrupt问题分析过程
- 【转载】MDK 中的逻辑分析仪参与HARDWARE DEBUG
- ArrayList.contains(obj o)出现返回结果不对的问题
- Keyguard 和 SystemUI
- string与tostring的区别
- 学习笔记之JavaSE(7)--Java基础语法6
- android scroller的原理分析
- numactl -hardware源码分析
- Android Studio2.0以上反射$change属性问题
- MUI介绍
- JQery选择器
- 实现一个简单的日历
- 欢迎使用CSDN-markdown编辑器
- 解决当ListView的条目中包含GridView时的问题
- Android源码分析--MediaServer源码分析(一)
- Android 在 SElinux下 如何获得对一个内核节点的访问权限