为什么内核空间中存在奇怪的PID

时间:2015-05-14 16:04:17

标签: linux linux-kernel scheduled-tasks pid

我必须破解类的内核调度程序。我需要从我当前的TGID(2817)切换到它的'兄弟姐妹(2818)。

我在我的pick_next_rt_entity(来自rt.c)的副本中使用当前的TGID:PID 2817:2822。

我的进程树看起来像:

bash(2804)─┬─mylocT(2817)─┬─{mylocT}(2820)
           │              ├─{mylocT}(2821)
           │              └─{mylocT}(2822)
           ├─mylocT(2818)───{mylocT}(2823)
           └─pstree(2819)

我的代码如下:

task = current->parent;
printk(KERN_INFO "\nCase 2 : PARENT CHILDREN: %s TGID %d", task->comm, task->tgid);
list_for_each(list,&task->children) {
    task1=list_entry(list,struct task_struct,children);
    printk(KERN_ALERT"\nPARENT THREAD GROUP: %s\tpid %d\ttgid %d \n",task1->comm,task1->pid,task1->tgid);
}

但DMESG输出如下:

输入当前TGID:PID 2817:2822

[  182.486117] 
[  182.486117] Case 2 : PARENT CHILDREN: bash TGID 2804<1>[  182.486118] 
[  182.486118] PARENT THREAD GROUP:     pid 1149585120  tgid -30720 
[  182.486119] 
[  182.486119] PARENT THREAD GROUP:     pid 1149585120  tgid -30720 
[  182.486120] 
[  182.486120] PARENT THREAD GROUP:     pid 1149585120  tgid -30720 
[  182.486121] 

为什么我为父母的孩子弄错了TGID / PID?

0 个答案:

没有答案