perf test
This commit is contained in:
@@ -47,7 +47,7 @@ struct perf_event_attr pea = {
|
|||||||
.config = PERF_COUNT_SW_DUMMY,
|
.config = PERF_COUNT_SW_DUMMY,
|
||||||
.sample_period = 1,
|
.sample_period = 1,
|
||||||
.sample_type = PERF_SAMPLE_CALLCHAIN,
|
.sample_type = PERF_SAMPLE_CALLCHAIN,
|
||||||
.disabled = 1,
|
// .disabled = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <linux/cpumask.h>
|
#include <linux/cpumask.h>
|
||||||
@@ -63,38 +63,38 @@ void setup_perf_event_for_task(struct task_struct *tsk) {
|
|||||||
pr_info("Perf event already created\n");
|
pr_info("Perf event already created\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// int cpu;
|
int cpu;
|
||||||
// struct perf_event **events;
|
struct perf_event **events;
|
||||||
// for_each_possible_cpu(cpu) {
|
for_each_possible_cpu(cpu) {
|
||||||
// struct perf_event **event = per_cpu_ptr(events, cpu);
|
struct perf_event **event = per_cpu_ptr(events, cpu);
|
||||||
// if (cpu_is_offline(cpu)) {
|
if (cpu_is_offline(cpu)) {
|
||||||
// pr_info("cpu %d is offline\n", cpu);
|
pr_info("cpu %d is offline\n", cpu);
|
||||||
// *event = NULL;
|
*event = NULL;
|
||||||
// continue;
|
continue;
|
||||||
// }
|
}
|
||||||
// *event = perf_event_create_kernel_counter(&pea, cpu, tsk,
|
*event = perf_event_create_kernel_counter(&pea, cpu, tsk,
|
||||||
// vm_perf_overflow_callback, NULL);
|
vm_perf_overflow_callback, NULL);
|
||||||
|
|
||||||
// // perf_event_create_kernel_counter(&pea, cpu, tsk,
|
// perf_event_create_kernel_counter(&pea, cpu, tsk,
|
||||||
// // vm_perf_overflow_callback,
|
// vm_perf_overflow_callback,
|
||||||
// // NULL);
|
// NULL);
|
||||||
// if (IS_ERR(*event)) {
|
if (IS_ERR(*event)) {
|
||||||
// printk(KERN_INFO "create perf event failure\n");
|
printk(KERN_INFO "create perf event failure\n");
|
||||||
// // return -1;
|
// return -1;
|
||||||
// }
|
}
|
||||||
// // perf_event_enable(*event);
|
// perf_event_enable(*event);
|
||||||
// }
|
|
||||||
|
|
||||||
// pe = perf_event_create_kernel_counter(&pea, tsk->on_cpu, tsk,
|
|
||||||
// vm_perf_callback, NULL);
|
|
||||||
pe = perf_event_create_kernel_counter(&pea, -1, tsk,
|
|
||||||
vm_perf_overflow_callback, NULL);
|
|
||||||
if (IS_ERR(pe)) {
|
|
||||||
pr_info("Error in perf_event_create_kernel_counter\n");
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
perf_event_enable(pe); // enable perf event
|
// pe = perf_event_create_kernel_counter(&pea, tsk->on_cpu, tsk,
|
||||||
|
// vm_perf_overflow_callback, NULL);
|
||||||
|
// // pe = perf_event_create_kernel_counter(&pea, -1, tsk,
|
||||||
|
// // vm_perf_overflow_callback, NULL);
|
||||||
|
// if (IS_ERR(pe)) {
|
||||||
|
// pr_info("Error in perf_event_create_kernel_counter\n");
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// perf_event_enable(pe); // enable perf event
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ static int task_info_extract(void *buf, unsigned int len, void *) {
|
|||||||
diag_printf_kern_stack(&tsk_info_system->kern_stack);
|
diag_printf_kern_stack(&tsk_info_system->kern_stack);
|
||||||
printf("#* 0xffffffffffffff %s (UNKNOWN)\n",
|
printf("#* 0xffffffffffffff %s (UNKNOWN)\n",
|
||||||
tsk_info_system->task.comm);
|
tsk_info_system->task.comm);
|
||||||
|
diag_printf_proc_chains(&tsk_info->proc_chains);
|
||||||
printf("##\n");
|
printf("##\n");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user