From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753631AbcDVH76 (ORCPT ); Fri, 22 Apr 2016 03:59:58 -0400 Received: from mga02.intel.com ([134.134.136.20]:65483 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751955AbcDVH75 (ORCPT ); Fri, 22 Apr 2016 03:59:57 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,516,1455004800"; d="scan'208";a="690364849" Subject: Re: [PATCH 2/5] perf script: extend db-export api to include callchains for samples To: Chris Phlipot , acme@kernel.org, mingo@redhat.com, peterz@infradead.org References: <1461056164-14914-1-git-send-email-cphlipot0@gmail.com> <1461056164-14914-2-git-send-email-cphlipot0@gmail.com> Cc: linux-kernel@vger.kernel.org From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Message-ID: <5719D914.2000109@intel.com> Date: Fri, 22 Apr 2016 10:56:04 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <1461056164-14914-2-git-send-email-cphlipot0@gmail.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 19/04/16 11:56, Chris Phlipot wrote: > The current implementation of the python database export API only > includes call path information when using some form of call/return > tracing, but is unable to do so when sampling. > > The following API extensions allow exporting of data collected by > perf record when using --call-graph. > > The additions to the python api include the following: > - add call_path_id to sample_table to allow association of samples > with call paths > > - add dso_id to call_path_table to more closely align the data with that > of a callchain_node The call_paths table already has symbol_id which belongs uniquely to a DSO, so why do we need dso_id as well? > > db-export and trace-script-python were both extended to accomidate the API accomidate -> accommodate > changes listed above. > > Thread-stack's functionality was expanded to allow storage and exporting > of callchains that result from individual samples. > > - Introduced a new static function (thread_stack__process_callchain) to > resolve call paths using the existing callchain resolution provided by > thread__resolve_callchain > > - The existing call_path tree in call_return_processor is used for storing > the data from the resolved callchain. > > - Call_return_processor was also extended to allow the ability to export > full call paths in addtion to the existing individual call/return pairs, > since call/return pairs are not available when doing sampling. Why do you need a callback? Seems like the only thing you need from thread-stack.c is the call path tree. You could move that to its own .c/.h files and then process the call chain in db-export.c Also a list of changes like the one above heavily implies you are not obeying the one patch == one change rule. Please try to make patches that only do one thing and also run checkpatch. If you don't mind, I'll let you respond to my comments before I comment on any other patches.