|
@@ -127,6 +127,9 @@ static void test_perf_event_all_cpu(struct perf_event_attr *attr)
|
|
|
int *pmu_fd = malloc(nr_cpus * sizeof(int));
|
|
|
int i, error = 0;
|
|
|
|
|
|
+ /* system wide perf event, no need to inherit */
|
|
|
+ attr->inherit = 0;
|
|
|
+
|
|
|
/* open perf_event on all cpus */
|
|
|
for (i = 0; i < nr_cpus; i++) {
|
|
|
pmu_fd[i] = sys_perf_event_open(attr, -1, i, -1, 0);
|
|
@@ -154,6 +157,11 @@ static void test_perf_event_task(struct perf_event_attr *attr)
|
|
|
{
|
|
|
int pmu_fd;
|
|
|
|
|
|
+ /* per task perf event, enable inherit so the "dd ..." command can be traced properly.
|
|
|
+ * Enabling inherit will cause bpf_perf_prog_read_time helper failure.
|
|
|
+ */
|
|
|
+ attr->inherit = 1;
|
|
|
+
|
|
|
/* open task bound event */
|
|
|
pmu_fd = sys_perf_event_open(attr, 0, -1, -1, 0);
|
|
|
if (pmu_fd < 0) {
|
|
@@ -175,14 +183,12 @@ static void test_bpf_perf_event(void)
|
|
|
.freq = 1,
|
|
|
.type = PERF_TYPE_HARDWARE,
|
|
|
.config = PERF_COUNT_HW_CPU_CYCLES,
|
|
|
- .inherit = 1,
|
|
|
};
|
|
|
struct perf_event_attr attr_type_sw = {
|
|
|
.sample_freq = SAMPLE_FREQ,
|
|
|
.freq = 1,
|
|
|
.type = PERF_TYPE_SOFTWARE,
|
|
|
.config = PERF_COUNT_SW_CPU_CLOCK,
|
|
|
- .inherit = 1,
|
|
|
};
|
|
|
struct perf_event_attr attr_hw_cache_l1d = {
|
|
|
.sample_freq = SAMPLE_FREQ,
|
|
@@ -192,7 +198,6 @@ static void test_bpf_perf_event(void)
|
|
|
PERF_COUNT_HW_CACHE_L1D |
|
|
|
(PERF_COUNT_HW_CACHE_OP_READ << 8) |
|
|
|
(PERF_COUNT_HW_CACHE_RESULT_ACCESS << 16),
|
|
|
- .inherit = 1,
|
|
|
};
|
|
|
struct perf_event_attr attr_hw_cache_branch_miss = {
|
|
|
.sample_freq = SAMPLE_FREQ,
|
|
@@ -202,7 +207,6 @@ static void test_bpf_perf_event(void)
|
|
|
PERF_COUNT_HW_CACHE_BPU |
|
|
|
(PERF_COUNT_HW_CACHE_OP_READ << 8) |
|
|
|
(PERF_COUNT_HW_CACHE_RESULT_MISS << 16),
|
|
|
- .inherit = 1,
|
|
|
};
|
|
|
struct perf_event_attr attr_type_raw = {
|
|
|
.sample_freq = SAMPLE_FREQ,
|
|
@@ -210,7 +214,6 @@ static void test_bpf_perf_event(void)
|
|
|
.type = PERF_TYPE_RAW,
|
|
|
/* Intel Instruction Retired */
|
|
|
.config = 0xc0,
|
|
|
- .inherit = 1,
|
|
|
};
|
|
|
|
|
|
printf("Test HW_CPU_CYCLES\n");
|