Linux内核NUMA结构体task_struct中的相关变量



前情提要,感谢大家观看并回答我的问题。

我正在看linux内核的代码,linux/kernel/kthread.c

在文件中,有一个函数tsk_fork_get_node,如下所示

/* called from do_fork() to get node information for about to be created task */
int tsk_fork_get_node(struct task_struct *tsk)
{
#ifdef CONFIG_NUMA
    if (tsk == kthreadd_task)
        return tsk->pref_node_fork;
#endif
    return NUMA_NO_NODE;
}

我找不到pref_node_fork变量的确切含义。我想知道它的全名

我还找到了补丁(提交id 207205a2ba,带有"git show 207205a2ba")

但是task_struct中的pref_node_fork变量没有解释

总结:

  1. 我想知道pref_node_fork变量的确切含义

  2. 我想知道pref_node_fork变量的全名

我不明白这里有什么问题。提交消息清楚地说明它扩展了API,这样当生成一个新的内核线程时,您就可以知道应该使用哪个numa域。然后可以看到,它是通过通过perf_node_fork字段走私节点参数并在tsk_fork_get_node中在fork上使用它来完成的。

我不得不问你为什么要看这段代码

最新更新