summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/module/monitor_kernel_lib.c29
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;
}