for_each_node(node)
2024-08-30 05:22:40
遍历各个pg_data_t节点。
1.定义在include/linux/nodemask.h中
/*
* Bitmasks that are kept for all the nodes.
*/
enum node_states {
N_POSSIBLE, /* The node could become online at some point */
N_ONLINE, /* The node is online */
N_NORMAL_MEMORY, /* The node has regular memory */
#ifdef CONFIG_HIGHMEM
N_HIGH_MEMORY, /* The node has regular or high memory */
#else
N_HIGH_MEMORY = N_NORMAL_MEMORY,
#endif
N_CPU, /* The node has one or more cpus */
NR_NODE_STATES
};
#define for_each_node(node) for_each_node_state(node, N_POSSIBLE)
for_each_node_state根据宏开关有不同的定义
#if MAX_NUMNODES
#define for_each_node_state(__node, __state) \
for_each_node_mask((__node), node_states[__state])
#else
#define for_each_node_state(node, __state) \
for ( (node) = ; (node) == ; (node) = )
2.MAX_NUMNODES
定义在include/linux/numa.h中
#ifdef CONFIG_NODES_SHIFT
#define NODES_SHIFT CONFIG_NODES_SHIFT
#else
#define NODES_SHIFT 0
#endif #define MAX_NUMNODES (1 << NODES_SHIFT)
而CONFIG_NODES_SHIFT定义在不同板子的arch/arm/configs/xxx_defconfig文件中。
3.for_each_node_mask(node, mask)
#if MAX_NUMNODES > 1
#define for_each_node_mask(node, mask) \
for ((node) = first_node(mask); \
(node) < MAX_NUMNODES; \
(node) = next_node((node), (mask)))
#else /* MAX_NUMNODES == 1 */
#define for_each_node_mask(node, mask) \
if (!nodes_empty(mask)) \
for ((node) = ; (node) < ; (node)++)
#endif /* MAX_NUMNODES */
最新文章
- grep命令
- webpy 访问局域网共享资源
- C++设计模式-TemplateMethod模板方法模式
- 更改apache网站根目录导致localhost不能访问
- sqoop的命令行操作
- jquery-drawsvg — HTML5轻量级插件
- HDU 1560 DNA sequence A* 难度:1
- LINQ(LINQ to DataSet)
- Zabbix agent on Microsoft Windows
- Delphi 多文件拖放获取路径示例
- PowerDesigner将PDM导出生成WORD文档--温习老知识
- HUST 1352 Repetitions of Substrings(字符串)
- python数据结构与算法篇:排序
- Linux grep \t Tab 键失效
- STD函数的内部计算公式
- 广商博客冲刺第四五天new
- rabbitmq使用(四)
- 安装指定版本的nodejs
- Entity Framework 6.x 学习之Database First
- 十、springboot之web开发打包生产
热门文章
- Java中List,Set和Map详解及其区别和使用场景(转)
- Serilog 是 ASP.NET Core 的一个插件,可以简化日志记录
- 059 Spiral Matrix II 旋转打印矩阵 II
- (转)Linux Network IO Model、Socket IO Model - select、poll、epoll
- document.getElementById(...) is null
- 省厅报件7.0 读取mdb 生成xml 文件
- ios 绘制虚线 CGContextSetLineDash的使用
- markdown-Macdown
- 使用java来压缩图片
- Literals