有关 Linux 中处理器的信息

有关 Linux 中处理器的信息

大家好,我正在阅读Understanding the Linux Kernel,我在那里发现:

除了每个进程描述符中包含的字段之外,还需要附加信息来描述每个 CPU 正在做什么。为此,调度程序可以依赖类型为schedule_data 的NR_CPUS 结构的aligned_data 数组。

NR_CPUS我的问题是,我在哪里可以找到和 this的定义(我的意思是哪个目录和文件)schedule_data struct,提前致谢

PS 如果有人知道一些网站可以提供有关 Linux 内核中不同结构和宏的定义位置的快速参考,那将会非常有帮助

答案1

我会用

cd /usr/src/linux
cscope

并在与默认编辑器集成良好的 ncurses gui 中浏览定义、引用、调用者、被调用者、自由文本

如果你使用 vim,它甚至会以相反的方式集成

然后是ctags;该软件也得到了 vim 和许多其他编辑器的大力支持

答案2

http://lxr.linux.no/是一个在线站点,可以找到 Linux 内核中任何 C 对象的定义和用法。

只需选择某个版本的内核(例如http://lxr.linux.no/#linux+v2.6.38/)并将变量或宏的名称粘贴到右上角的输入字段中。

这里以搜索NR_CPUS的结果为例http://lxr.linux.no/#linux+v2.6.38/include/linux/threads.h#L20

答案3

NR_CPUS在文件中定义为宏:include/linux/threads.h.

struct schedule_data定义于:/usr/src/linux/kernel/sched.c.

相关内容