diff options
author | Dongsheng Yang <yangds.fnst@cn.fujitsu.com> | 2014-05-12 21:38:21 -0400 |
---|---|---|
committer | Jiri Olsa <jolsa@kernel.org> | 2014-05-16 03:17:36 -0400 |
commit | 67d6259dd021006ade25d67b045ad2089b5aba96 (patch) | |
tree | 5ed1158f5eb54f4981e2f8efe7d1c37c27a5a2cc | |
parent | 0680ee7db16de9c02d1d4b1a935a5daf754fe8a1 (diff) |
perf sched: Remove nr_state_machine_bugs in perf latency
As we do not use .success in sched_wakeup event any more, then
we can not guarantee that the task when wakeup event happen is
out of run queue. So the message of nr_state_machine_bugs is
not correct.
Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Link: http://lkml.kernel.org/r/1399945101-21736-1-git-send-email-yangds.fnst@cn.fujitsu.com
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
-rw-r--r-- | tools/perf/builtin-sched.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index a3320f1cda69..0b4fe533e1a1 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c | |||
@@ -149,7 +149,6 @@ struct perf_sched { | |||
149 | unsigned long nr_runs; | 149 | unsigned long nr_runs; |
150 | unsigned long nr_timestamps; | 150 | unsigned long nr_timestamps; |
151 | unsigned long nr_unordered_timestamps; | 151 | unsigned long nr_unordered_timestamps; |
152 | unsigned long nr_state_machine_bugs; | ||
153 | unsigned long nr_context_switch_bugs; | 152 | unsigned long nr_context_switch_bugs; |
154 | unsigned long nr_events; | 153 | unsigned long nr_events; |
155 | unsigned long nr_lost_chunks; | 154 | unsigned long nr_lost_chunks; |
@@ -1032,12 +1031,18 @@ static int latency_wakeup_event(struct perf_sched *sched, | |||
1032 | atom = list_entry(atoms->work_list.prev, struct work_atom, list); | 1031 | atom = list_entry(atoms->work_list.prev, struct work_atom, list); |
1033 | 1032 | ||
1034 | /* | 1033 | /* |
1034 | * As we do not guarantee the wakeup event happens when | ||
1035 | * task is out of run queue, also may happen when task is | ||
1036 | * on run queue and wakeup only change ->state to TASK_RUNNING, | ||
1037 | * then we should not set the ->wake_up_time when wake up a | ||
1038 | * task which is on run queue. | ||
1039 | * | ||
1035 | * You WILL be missing events if you've recorded only | 1040 | * You WILL be missing events if you've recorded only |
1036 | * one CPU, or are only looking at only one, so don't | 1041 | * one CPU, or are only looking at only one, so don't |
1037 | * make useless noise. | 1042 | * skip in this case. |
1038 | */ | 1043 | */ |
1039 | if (sched->profile_cpu == -1 && atom->state != THREAD_SLEEPING) | 1044 | if (sched->profile_cpu == -1 && atom->state != THREAD_SLEEPING) |
1040 | sched->nr_state_machine_bugs++; | 1045 | return 0; |
1041 | 1046 | ||
1042 | sched->nr_timestamps++; | 1047 | sched->nr_timestamps++; |
1043 | if (atom->sched_out_time > timestamp) { | 1048 | if (atom->sched_out_time > timestamp) { |
@@ -1496,14 +1501,6 @@ static void print_bad_events(struct perf_sched *sched) | |||
1496 | (double)sched->nr_lost_events/(double)sched->nr_events * 100.0, | 1501 | (double)sched->nr_lost_events/(double)sched->nr_events * 100.0, |
1497 | sched->nr_lost_events, sched->nr_events, sched->nr_lost_chunks); | 1502 | sched->nr_lost_events, sched->nr_events, sched->nr_lost_chunks); |
1498 | } | 1503 | } |
1499 | if (sched->nr_state_machine_bugs && sched->nr_timestamps) { | ||
1500 | printf(" INFO: %.3f%% state machine bugs (%ld out of %ld)", | ||
1501 | (double)sched->nr_state_machine_bugs/(double)sched->nr_timestamps*100.0, | ||
1502 | sched->nr_state_machine_bugs, sched->nr_timestamps); | ||
1503 | if (sched->nr_lost_events) | ||
1504 | printf(" (due to lost events?)"); | ||
1505 | printf("\n"); | ||
1506 | } | ||
1507 | if (sched->nr_context_switch_bugs && sched->nr_timestamps) { | 1504 | if (sched->nr_context_switch_bugs && sched->nr_timestamps) { |
1508 | printf(" INFO: %.3f%% context switch bugs (%ld out of %ld)", | 1505 | printf(" INFO: %.3f%% context switch bugs (%ld out of %ld)", |
1509 | (double)sched->nr_context_switch_bugs/(double)sched->nr_timestamps*100.0, | 1506 | (double)sched->nr_context_switch_bugs/(double)sched->nr_timestamps*100.0, |