lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 19 Sep 2017 00:04:09 -0700 From: Yonghong Song <yhs@...com> To: <peterz@...radead.org>, <rostedt@...dmis.org>, <ast@...com>, <daniel@...earbox.net>, <netdev@...r.kernel.org> CC: <kernel-team@...com> Subject: [PATCH net-next v4 0/4] bpf: add two helpers to read perf event enabled/running time Hardware pmu counters are limited resources. When there are more pmu based perf events opened than available counters, kernel will multiplex these events so each event gets certain percentage (but not 100%) of the pmu time. In case that multiplexing happens, the number of samples or counter value will not reflect the case compared to no multiplexing. This makes comparison between different runs difficult. Typically, the number of samples or counter value should be normalized before comparing to other experiments. The typical normalization is done like: normalized_num_samples = num_samples * time_enabled / time_running normalized_counter_value = counter_value * time_enabled / time_running where time_enabled is the time enabled for event and time_running is the time running for event since last normalization. This patch set implements two helper functions. The helper bpf_perf_event_read_value reads counter/time_enabled/time_running for perf event array map. The helper bpf_perf_prog_read_value read counter/time_enabled/time_running for bpf prog with type BPF_PROG_TYPE_PERF_EVENT. Changelogs: v3->v4: . fix a build failure v2->v3: . counters should be read in order to read enabled/running time. This is to prevent that counters and enabled/running time may be read separately. v1->v2: . reading enabled/running time should be together with reading counters which contains the logic to ensure the result is valid. Yonghong Song (4): bpf: add helper bpf_perf_event_read_value for perf event array map bpf: add a test case for helper bpf_perf_event_read_value bpf: add helper bpf_perf_prog_read_value bpf: add a test case for helper bpf_perf_prog_read_value include/linux/perf_event.h | 7 +++- include/uapi/linux/bpf.h | 26 +++++++++++- kernel/bpf/arraymap.c | 2 +- kernel/bpf/verifier.c | 4 +- kernel/events/core.c | 16 ++++++-- kernel/trace/bpf_trace.c | 67 +++++++++++++++++++++++++++++-- samples/bpf/trace_event_kern.c | 10 +++++ samples/bpf/trace_event_user.c | 13 +++--- samples/bpf/tracex6_kern.c | 26 ++++++++++++ samples/bpf/tracex6_user.c | 13 +++++- tools/include/uapi/linux/bpf.h | 4 +- tools/testing/selftests/bpf/bpf_helpers.h | 6 +++ 12 files changed, 175 insertions(+), 19 deletions(-) -- 2.9.5
Powered by blists - more mailing lists