diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/module/monitor_kernel_lib.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/source/module/monitor_kernel_lib.c b/source/module/monitor_kernel_lib.c index 4cc19ae..728e610 100644 --- a/source/module/monitor_kernel_lib.c +++ b/source/module/monitor_kernel_lib.c @@ -660,11 +660,11 @@ int diag_pid(int id) { pr_info("diag_pid\n"); struct task_struct *tsk; int ret; - // unsigned long flags; - // unsigned long event_id = get_cycles(); + unsigned long flags; + unsigned long event_id = get_cycles(); - // static variable_monitor_task tsk_info = {0}; - // static variable_monitor_record vm_record = {0}; + static variable_monitor_task tsk_info = {0}; + static variable_monitor_record vm_record = {0}; pid_t pid = (pid_t)id; @@ -684,20 +684,19 @@ int diag_pid(int id) { // smp_call_function_single(cpu, ipi_timer_check_output, NULL, 1); // 让 CPU2 // 执行 print_str() - // get_task_struct(tsk); // count +1 + get_task_struct(tsk); // count +1 - // tsk_info.et_type = VARIABLE_MONITOR_TASK_TYPE; - // tsk_info.id = event_id; - // tsk_info.tv = vm_record.tv; - // diag_task_signal(tsk, &tsk_info); - // printk(KERN_INFO "pid: %d, name: %s\n", tsk->pid, tsk->comm); - - pr_info("perf, tv %lld\n", ktime_get_real()); - setup_perf_event_for_task(tsk); // setup perf event for task + tsk_info.et_type = VARIABLE_MONITOR_TASK_TYPE; + tsk_info.id = event_id; + tsk_info.tv = vm_record.tv; + diag_task_signal(tsk, &tsk_info); + printk(KERN_INFO "pid: %d, name: %s\n", tsk->pid, tsk->comm); - // put_task_struct(tsk); // count -1 + // pr_info("perf, tv %lld\n", ktime_get_real()); + // setup_perf_event_for_task(tsk); // setup perf event for task - // push_tskinfo_2_sa_buffer(&tsk_info, &flags); // push to buffer + put_task_struct(tsk); // count -1 + push_tskinfo_2_sa_buffer(&tsk_info, &flags); // push to buffer return 0; } |
