Linux kernel NUMA下的linux内核模块内存布局

Linux kernel NUMA下的linux内核模块内存布局,linux-kernel,Linux Kernel,如果模块中有静态数据,如 static int some_param和我使用NUMA在多cpu机器上运行。数据段将位于何处?我了解到,在NUMA上,可以复制文本以避免访问远内存节点的延迟,但数据不可能复制,因为它不是只读的。 模块本身在哪里加载?它是NUMA感知的还是必须加载到预定义的模块映射区域 以下是参考资料: 这取决于操作系统。如果您使用的是Linux,将应用首次接触策略。这意味着您程序的所有数据都将分配到一个节点上,该节点靠近运行程序的CPU所在的节点 从逻辑上讲,您的程序将看到一个唯一

如果模块中有静态数据,如 static int some_param和我使用NUMA在多cpu机器上运行。数据段将位于何处?我了解到,在NUMA上,可以复制文本以避免访问远内存节点的延迟,但数据不可能复制,因为它不是只读的。 模块本身在哪里加载?它是NUMA感知的还是必须加载到预定义的模块映射区域

以下是参考资料:
这取决于操作系统。如果您使用的是Linux,将应用首次接触策略。这意味着您程序的所有数据都将分配到一个节点上,该节点靠近运行程序的CPU所在的节点

从逻辑上讲,您的程序将看到一个唯一的共享内存。在较低的级别,操作系统可能会在不同的NUMA节点上分配数据,从而导致一些性能问题


这取决于您是否希望编写NUMA感知代码以避免NUMA延迟和争用。尽管一些Linux发行版已经实现了一些NUMA平衡特性。e、 g.

AFAIK模块将仅加载到体系结构定义的模块虚拟地址空间中。另外,引用你读过的东西对每个人都有帮助。谢谢你添加了乔纳森的参考资料。