summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorzy <[email protected]>2023-12-27 03:47:37 -0500
committerzy <[email protected]>2023-12-27 03:47:37 -0500
commita6b19ff015ad70be7321543346bf7b40eed5e416 (patch)
tree2dc6cd7a32f53be4483585347a2cc6b602379a63 /source
parentc59492f7d1e372374d31412e4b52d7222fbc4124 (diff)
fix diag_pid
Diffstat (limited to 'source')
-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;
}