2016-11-12 109 views
0

以前,感谢您收看我的问题并回答。结构中的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变量没有解释。

摘要:

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

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

回答

0

我不关注这里有什么问题。提交消息清楚地表明它扩展了API,以便在产生新的内核线程时可以告诉应该使用哪个numa域。然后通过perf_node_fork字段走私节点参数并在tsk_fork_get_node的fork上使用它,可以看到它已完成。我不得不问,你为什么要看这段代码。

+0

我不需要任何修复的东西。我只是质疑tsk_fork_get_node变量的含义。我只是逐行阅读linux内核源代码。并且该路径的作者仅清楚地解释了除'tsk_fork_get_node'之外的其他内容' –

+0

逐行阅读是错误的。相反,您应该了解内核中使用的一般习惯用法,为此您应该坚持一个简单的子系统。 –

+0

我正在和其他guyz一起学习。不孤单。我们正在逐行观看代码,并就该行的含义相互沟通。 我明白你在说什么,但它对理解内核的全部含义也很有帮助。我的意思是整体概念不是子系统的常规 –