Messages in this thread | | | From | Andrew Vagin <> | Subject | [PATCH 0/4] Profiling sleep times | Date | Thu, 3 Nov 2011 01:59:40 +0300 |
| |
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.
Known issues: Now some samples may be lost due to throttling. The number of samples is restricted by sysctl_perf_event_sample_rate/HZ. A trace event is divided on some samples according to event's period. I don't sure, that we should generate more than one sample on each trace event. I think the better way to use SAMPLE_PERIOD and now I think in this direction. This problem isn't in my patches, so you can review it, while I'm working on this issue.
Andrew Vagin: 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
tools/perf/builtin-inject.c | 120 ++++++++++++++++++++++- tools/perf/scripts/python/bin/sched-stat-record | 2 + tools/perf/scripts/python/bin/sched-stat-report | 6 + 3 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 tools/perf/scripts/python/bin/sched-stat-record create mode 100644 tools/perf/scripts/python/bin/sched-stat-report
| |