Sample period calculation in deliver_sample_value is updated to calculate the per-thread period delta for events that are inherit + PERF_SAMPLE_READ. When the sampling event has this configuration, the read_format.id is used with the tid from the sample to lookup the storage of the previously accumulated counter total before calculating the delta. All existing valid configurations where read_format.value represents some global value continue to use just the read_format.id to locate the storage of the previously accumulated total. perf_sample_id is modified to support tracking per-thread values, along with the existing global per-id values. In the per-thread case, values are stored in a hash by tid within the perf_sample_id, and are dynamically allocated as the number is not known ahead of time. Signed-off-by: Ben Gainey <ben.gainey@arm.com> Cc: james.clark@arm.com Link: https://lore.kernel.org/r/20241001121505.1009685-2-ben.gainey@arm.com Signed-off-by: Namhyung Kim <namhyung@kernel.org> |
||
|---|---|---|
| .. | ||
| Documentation | ||
| include | ||
| tests | ||
| .gitignore | ||
| Build | ||
| Makefile | ||
| core.c | ||
| cpumap.c | ||
| evlist.c | ||
| evsel.c | ||
| internal.h | ||
| lib.c | ||
| libperf.map | ||
| libperf.pc.template | ||
| mmap.c | ||
| threadmap.c | ||
| xyarray.c | ||