Messages in this thread | | | Subject | [PATCH v4 0/3] perf: add support for analyzing events for containers | From | Hari Bathini <> | Date | Fri, 16 Dec 2016 00:06:55 +0530 |
| |
Currently, there is no trivial mechanism to analyze events based on containers. perf -G can be used, but it will not filter events for the containers created after perf is invoked, making it difficult to assess/ analyze performance issues of multiple containers at once.
This patch-set overcomes this limitation by using cgroup identifier as container unique identifier. A new PERF_RECORD_NAMESPACES event that records namespaces related info is introduced, from which the cgroup namespace's device & inode numbers are used as cgroup identifier. This is based on the assumption that each container is created with it's own cgroup namespace allowing assessment/analysis of multiple containers using cgroup identifier.
The first patch introduces PERF_RECORD_NAMESPACES in kernel while the second patch makes the corresponding changes in perf tool to read this PERF_RECORD_NAMESPACES events. The third patch adds a cgroup identifier column in perf report, which contains the cgroup namespace's device and inode numbers.
Changes from v3: * Saving device number for each inode. * cgroup identifier includes device number along with inode number.
---
Hari Bathini (3): perf: add PERF_RECORD_NAMESPACES to include namespaces related info perf tool: add PERF_RECORD_NAMESPACES to include namespaces related info perf tool: add cgroup identifier entry in perf report
include/linux/perf_event.h | 2 include/uapi/linux/perf_event.h | 31 +++++++ kernel/events/core.c | 135 ++++++++++++++++++++++++++++++++ kernel/fork.c | 3 + kernel/nsproxy.c | 5 + tools/include/uapi/linux/perf_event.h | 31 +++++++ tools/perf/builtin-annotate.c | 1 tools/perf/builtin-diff.c | 1 tools/perf/builtin-inject.c | 14 +++ tools/perf/builtin-kmem.c | 1 tools/perf/builtin-kvm.c | 2 tools/perf/builtin-lock.c | 1 tools/perf/builtin-mem.c | 1 tools/perf/builtin-record.c | 33 +++++++- tools/perf/builtin-report.c | 1 tools/perf/builtin-sched.c | 1 tools/perf/builtin-script.c | 41 ++++++++++ tools/perf/builtin-trace.c | 3 - tools/perf/perf.h | 1 tools/perf/util/Build | 1 tools/perf/util/data-convert-bt.c | 2 tools/perf/util/event.c | 138 ++++++++++++++++++++++++++++++++- tools/perf/util/event.h | 18 ++++ tools/perf/util/evsel.c | 3 + tools/perf/util/hist.c | 7 ++ tools/perf/util/hist.h | 1 tools/perf/util/machine.c | 25 ++++++ tools/perf/util/machine.h | 3 + tools/perf/util/namespaces.c | 27 ++++++ tools/perf/util/namespaces.h | 18 ++++ tools/perf/util/session.c | 7 ++ tools/perf/util/sort.c | 41 ++++++++++ tools/perf/util/sort.h | 7 ++ tools/perf/util/thread.c | 44 ++++++++++- tools/perf/util/thread.h | 6 + tools/perf/util/tool.h | 2 36 files changed, 643 insertions(+), 15 deletions(-) create mode 100644 tools/perf/util/namespaces.c create mode 100644 tools/perf/util/namespaces.h
| |