Rob*_*tin 4 linux process linux-kernel
我正在尝试遍历/proc我正在编写的实用程序中的每个进程(内核模块/fs/proc).问题是,我只看到根命名空间中的进程.我试图使用宏for_each_process从sched.h.
我可以键入ps一个shell并查看大量进程,但我的for_each_process循环看不到它们.是什么赋予了?
注意:我想知道它是否与某些事有关rcu_read_lock?我害怕放一个rcu_read_lock,我不知道应该去哪里.麻烦的是,我读到的文档似乎说在一个可抢占的内核(我的)中,睡在里面是非法的rcu_read_lock.我需要打电话down_read(mmap_sem),我害怕会睡觉.那意味着我不能用rcu_read_lock?
小智 5
它应该显示所有过程.我写了这样的代码.
struct task_struct *task;
for_each_process(p) {
printk("Task %s (pid = %d)\n",p->comm, task_pid_nr(p));
}
Run Code Online (Sandbox Code Playgroud)
这是打印所有过程.我怀疑你的proc_read功能.你可以proc_read在这里粘贴你的功能吗?
| 归档时间: |
|
| 查看次数: |
10776 次 |
| 最近记录: |