fix diag_pid

This commit is contained in:
zy
2023-12-27 03:47:37 -05:00
parent c59492f7d1
commit a6b19ff015

View File

@@ -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;
}