【问题标题】:Linux Kernel NUMA related variable in struct task_structstruct task_struct 中的 Linux 内核 NUMA 相关变量
【发布时间】:2016-11-12 09:54:33
【问题描述】:

之前,感谢您观看并回答我的问题。

我专门看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变量的全名。

【问题讨论】:

    标签: linux fork numa


    【解决方案1】:

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

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

    【讨论】:

    • 我不需要任何修复的东西。我只是质疑 tsk_fork_get_node 变量的含义。我只是逐行阅读linux内核源代码。并且路径的作者只是清楚地解释了除了'tsk_fork_get_node'之外的其他东西
    • 逐行阅读是错误的。相反,您应该了解整个内核使用的通用习惯用法,为此您应该坚持使用简单的子系统。
    • 我正在和其他人一起学习。不是一个人。我们一行一行地看代码,并就行的含义相互交流。我明白你在说什么,但它也有助于理解内核的整体含义。我的意思是整体概念而不是子系统的例程
    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 2021-07-30
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    相关资源
    最近更新 更多