linux内核模块中的任务数据结构

我正在为Linux编写一个可加载的内核模块。 我需要为Linux内核中的每个任务存储一些数据(这些数据将用于调度程序回调)。

我知道我可以修改struct task_struct并插入我自己的字段。 但是由于我愿意编写一个相对干净的内核模块,因此我无法修改原始Linux源代码树中的任何代码。

也可以维护某种从struct task_struct到哈希表中的数据的映射。 但它似乎有点太重。

我已经阅读了Linux内核模块中的Thread本地数据的答案。 它提到在struct file中使用private_data 。 但它需要每个线程打开它才能获得一个struct file 。 并且没有办法用struct task_struct查询每个任务的数据。 (因为我需要在调度程序回调中使用数据)

我的问题是:是否有任何简单而干净的方法,允许我在Linux内核中注册每个任务的数据结构而无需修改struct task_struct

非常感谢!


唯一允许注册每个任务数据结构的简单而干净的方法是修改struct task_struct

模块是为内核的可选部分而设计的; 他们只能使用从基本内核显式导出的函数。 如果您必须更改基本内核,则不能再使用模块。

链接地址: http://www.djcxy.com/p/15409.html

上一篇: task data structure in linux kernel module

下一篇: Viewing unicode strings in Intellij Idea debugger