find_task_by_vpidを追ってみる
Rev.1を表示中。最新版はこちら。
サンプルでお世話になっているfind_task_by_vpidを追ってみました。これはプロセスIDからtask_structを取得するものです。task_structにはstruct pid_link pids[PIDTYPE_MAX]が紐づいていて、この配列の添え字にそって、| PIDTYPE_PID | プロセスID |
| PIDTYPE_TGID | スレッドグループID |
| PIDTYPE_PGID | プロセスグループID |
| PIDTYPE_SID | セッションID |
全プロセスIDをリストしているpid_hashから、まずpid構造体を取得します。pid構造体にはこのpidを使用しているtaskがリストされており、これからtask_strucを取得するというものでした。
流れは以下の通りです。(kernel/pid.c)
find_task_by_vpid
find_task_by_pid_type_ns
find_pid_ns
pid_task




