numa distance 2

来源:互联网 发布:it行业 云计算 编辑:程序博客网 时间:2024/05/01 10:30
/* Conform to ACPI 2.0 SLIT distance definitions */
#define LOCAL_DISTANCE        10
#define REMOTE_DISTANCE    20
在kernel中首先通过numa_alloc_distance来初始化numa_distance数组,如果是本地node,则默认初始化为10,如果是远端node,则默认初始化为20.
static int __init numa_alloc_distance(void)
{
        /* fill with the default distances */
    for (i = 0; i < numa_distance_cnt; i++)
        for (j = 0; j < numa_distance_cnt; j++)
            numa_distance[i * numa_distance_cnt + j] = i == j ?
                LOCAL_DISTANCE : REMOTE_DISTANCE;

}
如果在dtb中有如下节点
distance-map {
        compatible = "numa-distance";
        distance-matrix = <0 1 5>, <2 3 5>;
    };
则会调用numa_set_distance 来设定numa_distance 数组,也就是说numa_distance中没有初始化的本地node的distance是10,远端node的distance是20.这也就是distance-matrix 中沒有設定node的默認值.
void __init numa_set_distance(int from, int to, int distance)
{
    numa_distance[from * numa_distance_cnt + to] = distance;
}

0 0
原创粉丝点击