linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Vagin <avagin@openvz.org>
To: linux-kernel@vger.kernel.org
Cc: a.p.zijlstra@chello.nl, paulus@samba.org, mingo@elte.hu,
	acme@ghostprotocols.net, asharma@fb.com, devel@openvz.org,
	dsahern@gmail.com, linux-perf-users@vger.kernel.org
Subject: [PATCH 0/7] Profiling sleep times (v3)
Date: Mon, 28 Nov 2011 12:03:28 +0300	[thread overview]
Message-ID: <1322471015-107825-1-git-send-email-avagin@openvz.org> (raw)

Do you want to know where your code waits locks for a long time?
Yes! It's for you. This feature helps you to find bottlenecks.

It's not artificial task. Once one of my colleague was investigating a
scalability problem. He pressed sysrq-t some times and tried to merge
call-chains by hand. But perf can do that.

Problem:
The problem is that events sched_stat_* contain call-chains of
non-target tasks.
About month ago I sent series of patches:

[PATCH 0/3] trace: add ability to collect call chains of non current task.

Peter and Frederic explained me, that this solve isn't good and will be
better to make it in userspace.

Now it's in userspace. This series expands "perf inject" to be able to
merge sched_switch events and sched_stat* events. sched_switch events
contain correct call-chains and sched_stat contains a correct time
slices.

v2:
* Removed all known issues. Now it works completely.
* Improved usability of sched-stat scripts according with Arun's comments.
v3: fixed accoding to comments from David Ahem

Andrew Vagin (7):
  perf: use event_name() to get an event name
  perf: add ability to record event period
  perf: add ability to change event according to sample (v2)
  perf: teach "perf inject" to work with files
  perf: teach perf inject to merge sched_stat_* and sched_switch events
  perf: add scripts for profiling sleep times (v2)
  event: add tracepoint for accounting block time

 include/trace/events/sched.h                    |    7 ++
 kernel/sched_fair.c                             |    2 +
 tools/perf/builtin-inject.c                     |  120 ++++++++++++++++++++++-
 tools/perf/builtin-record.c                     |    5 +
 tools/perf/scripts/python/bin/sched-stat-record |   65 ++++++++++++
 tools/perf/scripts/python/bin/sched-stat-report |    5 +
 tools/perf/util/event.h                         |    2 +
 tools/perf/util/evsel.c                         |   74 ++++++++++++++
 tools/perf/util/header.c                        |    2 +-
 tools/perf/util/session.h                       |    9 ++
 10 files changed, 288 insertions(+), 3 deletions(-)
 create mode 100644 tools/perf/scripts/python/bin/sched-stat-record
 create mode 100644 tools/perf/scripts/python/bin/sched-stat-report

             reply	other threads:[~2011-11-28  9:05 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-28  9:03 Andrew Vagin [this message]
2011-11-28  9:03 ` [PATCH 1/7] perf: use event_name() to get an event name Andrew Vagin
2011-12-06 14:02   ` Arnaldo Carvalho de Melo
2011-12-08  4:34   ` [tip:perf/urgent] perf header: Use " tip-bot for Andrew Vagin
2011-11-28  9:03 ` [PATCH 2/7] perf: add ability to record event period Andrew Vagin
2011-12-06 14:02   ` Arnaldo Carvalho de Melo
2011-11-28  9:03 ` [PATCH 3/7] perf: add ability to change event according to sample (v2) Andrew Vagin
2011-12-06 14:19   ` Arnaldo Carvalho de Melo
2011-12-06 14:24     ` Arnaldo Carvalho de Melo
2011-12-06 14:57     ` David Ahern
2011-12-06 15:06       ` Arnaldo Carvalho de Melo
2011-11-28  9:03 ` [PATCH 4/7] perf: teach "perf inject" to work with files Andrew Vagin
2011-11-28  9:03 ` [PATCH 5/7] perf: teach perf inject to merge sched_stat_* and sched_switch events Andrew Vagin
2011-11-28  9:03 ` [PATCH 6/7] perf: add scripts for profiling sleep times (v2) Andrew Vagin
2011-11-28  9:03 ` [PATCH 7/7] event: add tracepoint for accounting block time Andrew Vagin
2011-11-28 11:42   ` Peter Zijlstra
2011-11-28 14:02     ` Arjan van de Ven
2011-11-28 14:31       ` Arnaldo Carvalho de Melo
2011-11-28 14:43         ` Arjan van de Ven
2011-11-28 14:59           ` Arnaldo Carvalho de Melo
2011-12-06  9:48   ` [tip:sched/core] events, sched: Add tracepoint for accounting blocked time tip-bot for Andrew Vagin
2011-12-06  7:15 ` [Devel] [PATCH 0/7] Profiling sleep times (v3) Andrey Vagin
2011-12-06  8:30   ` Ingo Molnar
2011-12-06 13:45   ` Arnaldo Carvalho de Melo
2011-12-07 20:33   ` Arun Sharma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1322471015-107825-1-git-send-email-avagin@openvz.org \
    --to=avagin@openvz.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@ghostprotocols.net \
    --cc=asharma@fb.com \
    --cc=devel@openvz.org \
    --cc=dsahern@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).