Hari Bathini <[email protected]> writes:

> 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 is aimed at addressing this limitation by introducing a
> new PERF_RECORD_NAMESPACES event that records namespaces related info.
> As containers are created with namespaces, the new data can be used to
> in assessment/analysis of multiple containers.
>
> 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 demonstrates analysis
> of containers with this data by adding a cgroup identifier column in
> perf report, which contains the cgroup namespace's device and inode
> numbers. This is based on the assumption that each container is created
> with it's own cgroup namespace. The third patch has scope for improvement
> based on the conventions a container is attributed with, going
> forward.

Ack for the namespace interface bits.
Everything I asked for is in there.

Eric


>
> Changes from v5:
> * Updated changelogs of patches 1 & 3
> * Rebased the patches on perf/core in tip
>
> ---
>
> 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       |   38 +++++++++
>  kernel/events/core.c                  |  142 
> +++++++++++++++++++++++++++++++++
>  kernel/fork.c                         |    3 +
>  kernel/nsproxy.c                      |    5 +
>  tools/include/uapi/linux/perf_event.h |   38 +++++++++
>  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               |  143 
> ++++++++++++++++++++++++++++++++-
>  tools/perf/util/event.h               |   19 ++++
>  tools/perf/util/evsel.c               |    3 +
>  tools/perf/util/hist.c                |    7 ++
>  tools/perf/util/hist.h                |    1 
>  tools/perf/util/machine.c             |   34 ++++++++
>  tools/perf/util/machine.h             |    3 +
>  tools/perf/util/namespaces.c          |   35 ++++++++
>  tools/perf/util/namespaces.h          |   26 ++++++
>  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, 695 insertions(+), 15 deletions(-)
>  create mode 100644 tools/perf/util/namespaces.c
>  create mode 100644 tools/perf/util/namespaces.h
>
> --

Reply via email to