什么是"部分" in" __ PCPU_ATTRS"内核代码?

时间:2017-10-15 00:27:27

标签: linux linux-kernel kernel

我正在研究Linux内核中的代码。特别是,Per-CPU variables

我对following part中的section提出了疑问。

#define __PCPU_ATTRS(sec)                       \
    __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) \
    PER_CPU_ATTRIBUTES

通常,我使用http://elixir.free-electrons.com/来查找变量定义。但有时候很难找到真正的那个。

在这种情况下,section here是什么?

1 个答案:

答案 0 :(得分:2)

在这种特殊情况下,section是一个变量属性。它是特定于编译器的构造,而不是在站点上查找的符号名称。

粗略地说,它只允许人们选择放置物体的确切部分。即,通常编译器(gcc)将生成的对象放在程序的databss部分中,但属性 section将有助于你可以自定义它。

可以在GCC documentation中找到更全面的解释。