fix diag_pid
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user