From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751550AbdGRJbm convert rfc822-to-8bit (ORCPT ); Tue, 18 Jul 2017 05:31:42 -0400 Received: from ozlabs.org ([103.22.144.67]:39869 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751334AbdGRJbj (ORCPT ); Tue, 18 Jul 2017 05:31:39 -0400 From: Michael Ellerman To: Jin Yao , acme@kernel.org, jolsa@kernel.org, peterz@infradead.org, mingo@redhat.com, alexander.shishkin@linux.intel.com Cc: Linux-kernel@vger.kernel.org, ak@linux.intel.com, kan.liang@intel.com, yao.jin@intel.com, Jin Yao Subject: Re: [PATCH v10 1/7] perf/core: Define the common branch type classification In-Reply-To: <1500379995-6449-2-git-send-email-yao.jin@linux.intel.com> References: <1500379995-6449-1-git-send-email-yao.jin@linux.intel.com> <1500379995-6449-2-git-send-email-yao.jin@linux.intel.com> User-Agent: Notmuch/0.21 (https://notmuchmail.org) Date: Tue, 18 Jul 2017 19:31:37 +1000 Message-ID: <871spejdl2.fsf@concordia.ellerman.id.au> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Jin Yao writes: > It is often useful to know the branch types while analyzing branch > data. For example, a call is very different from a conditional branch. > > Currently we have to look it up in binary while the binary may later > not be available and even the binary is available but user has to take > some time. It is very useful for user to check it directly in perf > report. > > Perf already has support for disassembling the branch instruction > to get the x86 branch type. > > To keep consistent on kernel and userspace and make the classification > more common, the patch adds the common branch type classification > in perf_event.h. > > The patch only defines a minimum but most common set of branch types. > > PERF_BR_UNKNOWN : unknown > PERF_BR_COND :conditional > PERF_BR_UNCOND : unconditional > PERF_BR_IND : indirect > PERF_BR_CALL : function call > PERF_BR_IND_CALL : indirect function call > PERF_BR_RET : function return > PERF_BR_SYSCALL : syscall > PERF_BR_SYSRET : syscall return > PERF_BR_COND_CALL : conditional function call > PERF_BR_COND_RET : conditional function return > > The patch also adds a new field type (4 bits) in perf_branch_entry > to record the branch type. > > Since the disassembling of branch instruction needs some overhead, > a new PERF_SAMPLE_BRANCH_TYPE_SAVE is introduced to indicate if it > needs to disassemble the branch instruction and record the branch > type. > > Change log > ---------- > v10: Not changed. > > v9: Not changed. > > v8: Change PERF_BR_NONE to PERF_BR_UNKNOWN. > No other change. I acked v8, so you could have retained my ack. Here it is again: Acked-by: Michael Ellerman (powerpc) cheers