内核空间中的进程运行时

时间:2015-12-02 14:25:04

标签: c linux linux-kernel

我试图在内核空间或用户空间中获取给定进程的运行时。 无论如何,这是我想要做的......

//suppose struct task_struct *task has a direct link to pid 1
cputime_t ktime = task->cputime_expires.stime;
cputime_t utime = task->cputime_expires.utime;
cputime_t total = ktime + utime;
printk(KERN_INFO "TOTAL [%lu]",total); // 0 

为什么输出为零?

1 个答案:

答案 0 :(得分:2)

我们将从task->utimetask->stime等处获得流程运行时间。

检查功能account_process_tick() source

您提到的那个,task->cputime_expires用于timer_settime()系统调用以设置POSIX每进程计时器。