Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754295Ab2HXR76 (ORCPT ); Fri, 24 Aug 2012 13:59:58 -0400 Received: from mail-gh0-f174.google.com ([209.85.160.174]:52336 "EHLO mail-gh0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1749667Ab2HXR7x (ORCPT ); Fri, 24 Aug 2012 13:59:53 -0400 Date: Fri, 24 Aug 2012 14:59:47 -0300 From: Arnaldo Carvalho de Melo To: Andrey Wagin Cc: Peter Zijlstra , =?iso-8859-1?Q?Fr=E9d=E9ric?= Weisbecker , Paul Mackerras , Ingo Molnar , LKML , Namhyung Kim Subject: Re: [PATCH 0/4] perf: Teach perf tool to profile sleep times (v2) Message-ID: <20120824175947.GA29542@infradead.org> References: <1344344165-369636-1-git-send-email-avagin@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3798 Lines: 93 Em Fri, Aug 24, 2012 at 05:32:21PM +0400, Andrey Wagin escreveu: > Hello Arnaldo, > > What do you think about this series? > > It has been fixed according with your comments to the previous > patches. Are you going to take it? I've put them in a perf/sleep branch in my tree, waiting on Fr?d?ric that is reviewing it. - Arnaldo > 2012/8/7 Andrew Vagin : > > This functionality helps to analize where a task sleeps or waits locks. > > This feature can help to investigate a scalability problems. > > > > The main idea is that we can combine sched_switch and sched_stat_sleep events. > > sched_switch contains a callchain, when a task starts sleeping. > > sched_stat_sleep contains a time period for which a task slept. > > > > This series teaches "perf inject" to combine this events. > > > > All kernel related patches were committed committed in 3.6-rc1. > > > > Here is an example of a report: > > $ cat ~/foo.c > > .... > > for (i = 0; i < 10; i++) { > > ts1.tv_sec = 0; > > ts1.tv_nsec = 10000000; > > nanosleep(&ts1, NULL); > > > > tv1.tv_sec = 0; > > tv1.tv_usec = 40000; > > select(0, NULL, NULL, NULL,&tv1); > > } > > ... > > > > $ ./perf record -e sched:sched_stat_sleep -e sched:sched_switch \ > > -e sched:sched_process_exit -gP -o ~/perf.data.raw ~/foo > > [ perf record: Woken up 1 times to write data ] > > [ perf record: Captured and wrote 0.015 MB /root/perf.data.raw (~661 samples) ] > > $ ./perf inject -v -s -i ~/perf.data.raw -o ~/perf.data > > $ ./perf report -i ~/perf.data > > # Samples: 40 of event 'sched:sched_switch' > > # Event count (approx.): 1005527702 > > # > > # Overhead Command Shared Object Symbol > > # ........ ....... ................. .............. > > # > > 100.00% foo [kernel.kallsyms] [k] __schedule > > | > > --- __schedule > > schedule > > | > > |--79.81%-- schedule_hrtimeout_range_clock > > | schedule_hrtimeout_range > > | poll_schedule_timeout > > | do_select > > | core_sys_select > > | sys_select > > | system_call_fastpath > > | __select > > | __libc_start_main > > | > > --20.19%-- do_nanosleep > > hrtimer_nanosleep > > sys_nanosleep > > system_call_fastpath > > __GI___libc_nanosleep > > __libc_start_main > > > > Andrew Vagin (3): > > perf: teach "perf inject" to work with files > > perf: teach perf inject to merge sched_stat_* and sched_switch events > > perf: mark a dso if it's used > > > > tools/perf/builtin-inject.c | 139 ++++++++++++++++++++++++++++++++++++++++--- > > tools/perf/util/build-id.c | 2 +- > > tools/perf/util/build-id.h | 5 ++ > > 3 files changed, 137 insertions(+), 9 deletions(-) > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/