gpt4 book ai didi

c - linux内核模块中的每个任务数据结构

转载 作者:IT王子 更新时间:2023-10-29 00:35:00 25 4
gpt4 key购买 nike

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

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

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

我已阅读 Thread local data in linux kernel module 中的答案.它提到在 struct file 中使用 private_data。但是它需要每个线程都打开它才能得到一个struct file。并且无法使用 struct task_struct 查询每个任务的数据。 (因为我需要在调度程序回调中使用数据)

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

非常感谢!

最佳答案

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

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

关于c - linux内核模块中的每个任务数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18478135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com