On 7/27/16 10:07 AM, Tomoki Sekiyama wrote:
sched_out_state() converts the prev_state u64 bitmask to a char in a wrong way, which may cause wrong results of 'perf sched latency'. This patch fixes the conversion. Also, preempted tasks must be considered that they are in the THREAD_WAIT_CPU state.
you reference fixing the order of XZ as well.
Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama...@hitachi.com> Cc: Jiri Olsa <jo...@kernel.org> Cc: David Ahern <dsah...@gmail.com> Cc: Namhyung Kim <namhy...@kernel.org> Cc: Peter Zijlstra <a.p.zijls...@chello.nl> Cc: Masami Hiramatsu <mhira...@kernel.org> --- tools/perf/builtin-sched.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index 0dfe8df..8651c36 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -70,7 +70,8 @@ struct sched_atom { struct task_desc *wakee; }; -#define TASK_STATE_TO_CHAR_STR "RSDTtZXxKWP" +/* TASK_STATE_MAX means the task is preempted(R+). Use '+' for it here. */ +#define TASK_STATE_TO_CHAR_STR "RSDTtXZxKWPN+"
As I mentioned in a previous reply you can't add the '+' on the end.