linux – 为什么for_each_process不显示每个任务?
发布时间:2020-12-14 00:51:59 所属栏目:Linux 来源:网络整理
导读:我正在尝试遍历我正在编写的/ proc实用程序中的每个进程(/ fs / proc中的内核模块).问题是,我只看到根命名空间中的进程.我正在尝试使用sched.h中的宏for_each_process. 我可以在shell中输入ps并查看大量进程,但是我的for_each_process循环看不到它们.是什么
我正在尝试遍历我正在编写的/ proc实用程序中的每个进程(/ fs / proc中的内核模块).问题是,我只看到根命名空间中的进程.我正在尝试使用sched.h中的宏for_each_process.
我可以在shell中输入ps并查看大量进程,但是我的for_each_process循环看不到它们.是什么赋予了? 注意:我想知道它是否与rcu_read_lock有关?我害怕放一个rcu_read_lock,我不知道应该去哪里.麻烦的是,我读过的documentation似乎说在一个可抢占的内核(我的)中,在rcu_read_lock里面睡觉是违法的.我需要调用down_read(mmap_sem),我恐怕会睡觉.这意味着我不能使用rcu_read_lock? 解决方法
它应该显示所有过程.我写了这样的代码.
struct task_struct *task; for_each_process(p) { printk("Task %s (pid = %d)n",p->comm,task_pid_nr(p)); } 这是打印所有过程.我怀疑你的proc_read功能.你可以将proc_read函数粘贴到这里吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读