From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757229AbcG0QwS (ORCPT ); Wed, 27 Jul 2016 12:52:18 -0400 Received: from mail-pa0-f67.google.com ([209.85.220.67]:36544 "EHLO mail-pa0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753276AbcG0QwR (ORCPT ); Wed, 27 Jul 2016 12:52:17 -0400 Subject: Re: [PATCH v2] perf sched: fix wrong conversion of task state To: Tomoki Sekiyama , linux-kernel@vger.kernel.org References: <1469635660-29303-1-git-send-email-tomoki.sekiyama.qu@hitachi.com> Cc: ltc-kernel@rdgml.intra.hitachi.co.jp, masumi.moritani.ju@hitachi.com, Jiri Olsa , Namhyung Kim , Peter Zijlstra , Masami Hiramatsu From: David Ahern Message-ID: Date: Wed, 27 Jul 2016 10:52:14 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <1469635660-29303-1-git-send-email-tomoki.sekiyama.qu@hitachi.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > Cc: Jiri Olsa > Cc: David Ahern > Cc: Namhyung Kim > Cc: Peter Zijlstra > Cc: Masami Hiramatsu > --- > 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.