perf test

This commit is contained in:
zy
2023-12-14 21:14:20 -05:00
parent 3034599a24
commit f08d79edb6
2 changed files with 31 additions and 30 deletions

View File

@@ -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
} }
/** /**

View File

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