Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753767AbbFWDHm (ORCPT ); Mon, 22 Jun 2015 23:07:42 -0400 Received: from mail4.hitachi.co.jp ([133.145.228.5]:45914 "EHLO mail4.hitachi.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753584AbbFWDHk (ORCPT ); Mon, 22 Jun 2015 23:07:40 -0400 Message-ID: <5588CD75.7080701@hitachi.com> Date: Tue, 23 Jun 2015 12:07:33 +0900 From: Masami Hiramatsu Organization: Hitachi, Ltd., Japan User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: He Kuang , a.p.zijlstra@chello.nl, mingo@redhat.com, acme@kernel.org, namhyung@kernel.org CC: wangnan0@huawei.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] perf probe: Fix failure to probe events on arm References: <5581578A.9060208@hitachi.com> <1434595750-129791-1-git-send-email-hekuang@huawei.com> In-Reply-To: <1434595750-129791-1-git-send-email-hekuang@huawei.com> Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2575 Lines: 70 On 2015/06/18 11:49, He Kuang wrote: > Fix failure to probe events on arm, problem is introduced by commit > 5a51fcd1f30c ("perf probe: Skip kernel symbols which is out of > .text"). For some architectures, label '_etext' is not in the .text > section(in .notes section for arm/arm64). Label out of .text section is > not loaded as symbols and we got a zero value when look up its address, > which causes all events be wrongly skiped. > > This patch skip checking text address range when failed to get the > address of '_etext' and fixes the problem. > > Problem can be reproduced on arm as following: > > # perf probe --add='generic_perform_write' > generic_perform_write+0 is out of .text, skip it. > Probe point 'generic_perform_write' not found. > Error: Failed to add events. > > After this patch: > > # perf probe --add='generic_perform_write' > Added new event: > probe:generic_perform_write (on generic_perform_write) > > You can now use it in all perf tools, such as: > > perf record -e probe:generic_perform_write -aR sleep 1 Looks good to me :) Acked-by: Masami Hiramatsu Thanks! > > Signed-off-by: He Kuang > --- > tools/perf/util/probe-event.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c > index 076527b..381f23a 100644 > --- a/tools/perf/util/probe-event.c > +++ b/tools/perf/util/probe-event.c > @@ -249,8 +249,12 @@ static void clear_probe_trace_events(struct probe_trace_event *tevs, int ntevs) > static bool kprobe_blacklist__listed(unsigned long address); > static bool kprobe_warn_out_range(const char *symbol, unsigned long address) > { > + u64 etext_addr; > + > /* Get the address of _etext for checking non-probable text symbol */ > - if (kernel_get_symbol_address_by_name("_etext", false) < address) > + etext_addr = kernel_get_symbol_address_by_name("_etext", false); > + > + if (etext_addr != 0 && etext_addr < address) > pr_warning("%s is out of .text, skip it.\n", symbol); > else if (kprobe_blacklist__listed(address)) > pr_warning("%s is blacklisted function, skip it.\n", symbol); > -- Masami HIRAMATSU Linux Technology Research Center, System Productivity Research Dept. Center for Technology Innovation - Systems Engineering Hitachi, Ltd., Research & Development Group E-mail: masami.hiramatsu.pt@hitachi.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in Please read the FAQ at http://www.tux.org/lkml/