kernel space: finding cpu usage of individual process/thread
Pintu Agarwal
pintu.ping at gmail.com
Wed Mar 23 11:45:16 EDT 2022
Hi,
For one of my requirements I need to find cpu usage or load_avg of an
individual process or thread using "for_each_process_thread(process,
thread)" where process/thread is a pointer to "task_struct".
But, currently I am not able to figure out which is the right field
from task_struct to get this value, or how to manipulate it.
I see some fields there but I'm not sure if these values are correct.
a) sched_entity -> sched_avg -> load/load_avg/load_sum/util_avg/etc.
b) stime + utime : What time I get from here ?
c) prev_cputime
d) vtime
e) acct_timexpd
f) ???
It will be good if I can get some references in kernel space.
When I use (a) above (load_avg) I get this value:
pid=2 , comm=kthread, load=51
pid=96, comm=cat , load=1024
etc...
When I use (stime + utime) I get:
pid=2 , comm=kthread, load=3978848
pid=96, comm=cat , load=11786176
So, not sure which one is correct ?
Thanks,
Pintu
More information about the Kernelnewbies
mailing list