This patch set contains a set of changes to allow the export of sampled callchains, and to associate them with samples, via the Python db export API and export-to-postgresql.py script.
Call path information is currently only available in the database when call/return info is available, but not when doing normal sampling. These changes make this information available for normal sampling runs as well. Patches 2-6 are required to make this information available in the database. Patch 1 is needed to fix an existing issue where callchains are processed incorrectly which can cause the other patches to export incorrect call paths for a small percentage of samples (depending on the workload). Chris Phlipot (6): perf tools: fix incorrect ordering of callchain entries perf tools: refractor code to move call path handling out of thread-stack perf script: enable db export to output sampled callchains perf script: add call path id to exported sample in db export perf script: expose usage of the callchain db export via the python api perf script: update export-to-postgresql to support callchain export tools/perf/scripts/python/export-to-postgresql.py | 47 ++++--- tools/perf/util/Build | 1 + tools/perf/util/call-path.c | 122 ++++++++++++++++++ tools/perf/util/call-path.h | 77 ++++++++++++ tools/perf/util/db-export.c | 89 +++++++++++++ tools/perf/util/db-export.h | 3 + tools/perf/util/machine.c | 56 ++++++--- .../util/scripting-engines/trace-event-python.c | 36 +++++- tools/perf/util/thread-stack.c | 139 +-------------------- tools/perf/util/thread-stack.h | 31 ++--- 10 files changed, 408 insertions(+), 193 deletions(-) create mode 100644 tools/perf/util/call-path.c create mode 100644 tools/perf/util/call-path.h -- 2.7.4