From a6b19ff015ad70be7321543346bf7b40eed5e416 Mon Sep 17 00:00:00 2001 From: zy Date: Wed, 27 Dec 2023 03:47:37 -0500 Subject: [PATCH] fix diag_pid --- source/module/monitor_kernel_lib.c | 29 ++++++++++++++--------------- 1 file 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); + 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 + // pr_info("perf, tv %lld\n", ktime_get_real()); + // setup_perf_event_for_task(tsk); // setup perf event for task - // put_task_struct(tsk); // count -1 - - // 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; }