profile: fix process level aggregation bug
This commit is contained in:
@@ -228,14 +228,16 @@ void profile_print_proc_stats(struct process *proc)
|
|||||||
if (!proc->profile_events[i].cnt)
|
if (!proc->profile_events[i].cnt)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
__kprintf("PID: %4d (%24s): %6u %6luk \n",
|
// __kprintf("PID: %4d (%24s): %6u %6luk \n",
|
||||||
|
__kprintf("PID: %4d (%24s): %6u %6lu \n",
|
||||||
proc->pid,
|
proc->pid,
|
||||||
profile_event_names[i - PROFILE_EVENT_MIN],
|
profile_event_names[i - PROFILE_EVENT_MIN],
|
||||||
proc->profile_events[i].cnt,
|
proc->profile_events[i].cnt,
|
||||||
(proc->profile_events[i].tsc /
|
(proc->profile_events[i].tsc /
|
||||||
(proc->profile_events[i].cnt ?
|
(proc->profile_events[i].cnt ?
|
||||||
proc->profile_events[i].cnt : 1))
|
proc->profile_events[i].cnt : 1))
|
||||||
/ 1000,
|
// / 1000
|
||||||
|
,
|
||||||
(proc->profile_events[i].tsc &&
|
(proc->profile_events[i].tsc &&
|
||||||
proc->profile_elapsed_ts ?
|
proc->profile_elapsed_ts ?
|
||||||
proc->profile_events[i].tsc * 100
|
proc->profile_events[i].tsc * 100
|
||||||
@@ -510,6 +512,8 @@ int do_profile(int flag)
|
|||||||
|
|
||||||
if (flag & PROF_ON) {
|
if (flag & PROF_ON) {
|
||||||
_thread->profile = 1;
|
_thread->profile = 1;
|
||||||
|
if (!_thread->profile_start_ts)
|
||||||
|
_thread->profile_start_ts = now_ts;
|
||||||
}
|
}
|
||||||
else if (flag & PROF_OFF) {
|
else if (flag & PROF_OFF) {
|
||||||
if (_thread->profile) {
|
if (_thread->profile) {
|
||||||
|
|||||||
Reference in New Issue
Block a user