我正在尝试获取内核空间或用户空间中给定进程的运行时间。 无论如何,这就是我想要做的......
//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
为什么输出为零?
最佳答案
我们将从task->utime
、task->stime
等获取进程运行时间
检查函数account_process_tick()
source .
您提到的那个,即 task->cputime_expires
用于 timer_settime()
系统调用以武装 POSIX 每进程计时器。
关于c - 内核空间中的进程运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34045146/