From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753623AbbHMSJu (ORCPT ); Thu, 13 Aug 2015 14:09:50 -0400 Received: from mail.kernel.org ([198.145.29.136]:55319 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752816AbbHMSJt (ORCPT ); Thu, 13 Aug 2015 14:09:49 -0400 Date: Thu, 13 Aug 2015 15:09:43 -0300 From: Arnaldo Carvalho de Melo To: Masami Hiramatsu Cc: Namhyung Kim , Jiri Olsa , Linux Kernel Mailing List , David Ahern , Brendan Gregg Subject: Re: [BUGFIX PATCH perf/core ] perf-probe: Fix to add missed brace around if block Message-ID: <20150813180942.GF30356@kernel.org> References: <20150812215541.9088.62425.stgit@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150812215541.9088.62425.stgit@localhost.localdomain> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Thu, Aug 13, 2015 at 06:55:41AM +0900, Masami Hiramatsu escreveu: > The commit 75186a9b09e4 (perf probe: Fix to show lines of > sys_ functions correctly) introduced a bug by a missed brace > around if block. This fixes to add it. > > Signed-off-by: Masami Hiramatsu Thanks! now it works: [root@zoo ~]# perf probe 'get_timeval=sys_select:11 tv_sec=tv.tv_sec tv_usec=tv.tv_usec' Added new event: probe:get_timeval (on sys_select:11 with tv_sec=tv.tv_sec tv_usec=tv.tv_usec) You can now use it in all perf tools, such as: perf record -e probe:get_timeval -aR sleep 1 [root@zoo ~]# perf probe -l probe:get_timeval (on SYSC_select:11@/home/git/linux/fs/select.c with tv_sec tv_usec) probe:vfs_getname (on getname_flags:72@/home/git/linux/fs/namei.c with pathname) [root@zoo ~]# Now we have: # strace -e select -p 960 Process 960 attached select(13, [4 5 7 9 10 11 12], [], [5], {10, 0}) = 0 (Timeout) select(13, [4 5 7 9 10 11 12], [], [5], {9, 999999}) = 0 (Timeout) select(13, [4 5 7 9 10 11 12], [], [5], {10, 0}) = 0 (Timeout) select(13, [4 5 7 9 10 11 12], [], [5], {10, 0}) = 0 (Timeout) select(13, [4 5 7 9 10 11 12], [], [5], {0, 3072}) = 0 (Timeout) At the same time as: # trace --ev probe:get_timeval -e select -p 960 0.322 ( 0.013 ms): select(n: 13, inp: 0x55ac425996c0, outp: 0x55ac42599750, exp: 0x55ac425997e0, tvp: 0x7ffd3371fa30) ... 0.322 ( ): probe:get_timeval:(ffffffff81228f15) tv_sec=10 tv_usec=0) 10022.189 (10021.880 ms): ... [continued]: select()) = 0 Timeout 10022.681 ( 0.043 ms): select(n: 13, inp: 0x55ac425996c0, outp: 0x55ac42599750, exp: 0x55ac425997e0, tvp: 0x7ffd3371fa30) ... 10022.681 ( ): probe:get_timeval:(ffffffff81228f15) tv_sec=9 tv_usec=999999) 20040.673 (10018.035 ms): ... [continued]: select()) = 0 Timeout 20041.174 ( 0.046 ms): select(n: 13, inp: 0x55ac425996c0, outp: 0x55ac42599750, exp: 0x55ac425997e0, tvp: 0x7ffd3371fa30) ... 20041.174 ( ): probe:get_timeval:(ffffffff81228f15) tv_sec=10 tv_usec=0) 30063.041 (10021.912 ms): ... [continued]: select()) = 0 Timeout 30063.581 ( 0.042 ms): select(n: 13, inp: 0x55ac425996c0, outp: 0x55ac42599750, exp: 0x55ac425997e0, tvp: 0x7ffd3371fa30) ... 30063.581 ( ): probe:get_timeval:(ffffffff81228f15) tv_sec=10 tv_usec=0) 40085.448 (10021.909 ms): ... [continued]: select()) = 0 Timeout 40087.983 ( 0.033 ms): select(n: 13, inp: 0x55ac425996c0, outp: 0x55ac42599750, exp: 0x55ac425997e0, tvp: 0x7ffd3371fa30) ... 40087.983 ( ): probe:get_timeval:(ffffffff81228f15) tv_sec=0 tv_usec=3072) 40091.202 ( 3.252 ms): ... [continued]: select()) = 0 Timeout Seems to be working, now its just to add support in 'perf trace' for a "get_timeval" wannabe tracepoint in the same fashion as there is support for another wannabe tracepoint: "vfs_getname", add more of these where timevals are copied from the kernel, etc. Anyway, now 'perf probe' suits my needs with syscalls, applied! Thanks, - Arnaldo