';当前任务';在不同版本的linux内核中是什么意思?
我知道';当前任务';在不同版本的linux内核中是什么意思?,linux,kernel,task,Linux,Kernel,Task,我知道current_task为每个cpu保存task_struct*指针的地址 然而,当在不同的内核版本中读取这个符号值时,我得到了不同的结果 在4.19.65内核中,我通过cat/proc/kallsyms | grep current_task抓住它,得到: 0000000000015c40 A current_task 这意味着它是一个绝对值 在4.20.13内核中,我得到: ffffffffbea3a040 D current_task 这意味着它在数据部分 我使用了4.19.65
current_task
为每个cpu保存task_struct*
指针的地址
然而,当在不同的内核版本中读取这个符号值时,我得到了不同的结果
在4.19.65
内核中,我通过cat/proc/kallsyms | grep current_task
抓住它,得到:
0000000000015c40 A current_task
这意味着它是一个绝对值
在4.20.13
内核中,我得到:
ffffffffbea3a040 D current_task
这意味着它在数据部分
我使用了4.19.65
内核的默认配置。但是,我没有获得4.20.13
的配置文件。
我想知道这个值的含义是否与内核版本或内核配置有关?当它持有一个绝对值时,内核如何查找
当前\u任务
指针?在两个内核版本中当前\u任务
是一个用每CPU定义的宏定义的。因此差异很可能在于kallsyms
如何输出这些变量。请参阅Linux内核的例如和KALLSYMS\u ABSOLUTE\u perpu
配置选项。在这两个内核版本中current\u task
都是用DEFINE\u PER\u CPU
宏定义的。因此差异很可能在于kallsyms
如何输出这些变量。请参阅Linux内核的例如和KALLSYMS\u ABSOLUTE\u perpu
配置选项。