结构中的Linux内核NUMA相关变量task_struct
问题描述:
以前,感谢您收看我的问题并回答。结构中的Linux内核NUMA相关变量task_struct
我看linux内核的代码而言,Linux的/内核/ 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,以“混帐显示207205a2ba”)
,但有在task_struct中的pref_node_fork变量没有解释。
摘要:
我想知道pref_node_fork变量的确切含义。
我想知道pref_node_fork变量的全名。
答
我不关注这里有什么问题。提交消息清楚地表明它扩展了API,以便在产生新的内核线程时可以告诉应该使用哪个numa域。然后通过perf_node_fork字段走私节点参数并在tsk_fork_get_node的fork上使用它,可以看到它已完成。我不得不问,你为什么要看这段代码。
我不需要任何修复的东西。我只是质疑tsk_fork_get_node变量的含义。我只是逐行阅读linux内核源代码。并且该路径的作者仅清楚地解释了除'tsk_fork_get_node'之外的其他内容' –
逐行阅读是错误的。相反,您应该了解内核中使用的一般习惯用法,为此您应该坚持一个简单的子系统。 –
我正在和其他guyz一起学习。不孤单。我们正在逐行观看代码,并就该行的含义相互沟通。 我明白你在说什么,但它对理解内核的全部含义也很有帮助。我的意思是整体概念不是子系统的常规 –