From patchwork Tue Dec 6 07:13:56 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wang Nan X-Patchwork-Id: 86692 Delivered-To: patch@linaro.org Received: by 10.140.20.101 with SMTP id 92csp1880633qgi; Mon, 5 Dec 2016 23:16:24 -0800 (PST) X-Received: by 10.84.140.3 with SMTP id 3mr133136399pls.61.1481008584464; Mon, 05 Dec 2016 23:16:24 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s10si18274170pgn.194.2016.12.05.23.16.24; Mon, 05 Dec 2016 23:16:24 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752995AbcLFHQE (ORCPT + 25 others); Tue, 6 Dec 2016 02:16:04 -0500 Received: from szxga02-in.huawei.com ([119.145.14.65]:46201 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752362AbcLFHOp (ORCPT ); Tue, 6 Dec 2016 02:14:45 -0500 Received: from 172.24.1.47 (EHLO szxeml431-hub.china.huawei.com) ([172.24.1.47]) by szxrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id DRT24876; Tue, 06 Dec 2016 15:14:24 +0800 (CST) Received: from linux-4hy3.site (10.107.193.248) by szxeml431-hub.china.huawei.com (10.82.67.208) with Microsoft SMTP Server id 14.3.235.1; Tue, 6 Dec 2016 15:14:17 +0800 From: Wang Nan To: CC: , , Wang Nan , Arnaldo Carvalho de Melo , "Alexei Starovoitov" , He Kuang , Jiri Olsa , Zefan Li , Subject: [PATCH v4 18/18] perf clang jit: Export getpid() to perf hook Date: Tue, 6 Dec 2016 07:13:56 +0000 Message-ID: <20161206071356.5312-19-wangnan0@huawei.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20161206071356.5312-1-wangnan0@huawei.com> References: <20161206071356.5312-1-wangnan0@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.107.193.248] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org After this patch perf hooks can retrive pid of perf itself by calling getpid. It is important for excluding event from perf. This commit is also an example to show how to export more helpers to hooked script. Signed-off-by: Wang Nan Cc: Arnaldo Carvalho de Melo Cc: Alexei Starovoitov Cc: He Kuang Cc: Jiri Olsa Cc: Zefan Li Cc: pi3orama@163.com --- tools/perf/util/c++/bpf-helper-str.c | 1 + tools/perf/util/c++/clang.cpp | 1 + 2 files changed, 2 insertions(+) -- 2.10.1 diff --git a/tools/perf/util/c++/bpf-helper-str.c b/tools/perf/util/c++/bpf-helper-str.c index f4d6d57..1ad6ec0 100644 --- a/tools/perf/util/c++/bpf-helper-str.c +++ b/tools/perf/util/c++/bpf-helper-str.c @@ -12,6 +12,7 @@ const char clang_builtin_bpf_helper_str[] = "#define SEC(NAME) __attribute__((section(NAME), used))\n" "extern int printf(const char *, ...);\n" "extern int puts(const char *);\n" +"extern int getpid(void);\n" "extern int perf_map_update_elem(void *, void *, void *, void *, unsigned long);\n" "extern int perf_map_lookup_elem(void *, void *, void *, void *);\n" "extern int perf_map_get_next_key(void *, void *, void *, void *);\n" diff --git a/tools/perf/util/c++/clang.cpp b/tools/perf/util/c++/clang.cpp index d49305a..ca5264c 100644 --- a/tools/perf/util/c++/clang.cpp +++ b/tools/perf/util/c++/clang.cpp @@ -239,6 +239,7 @@ static std::map exported_funcs = EXPORT(test__clang_callback), EXPORT(printf), EXPORT(puts), + EXPORT(getpid), EXPORT(JIT_HELPER_FUNC_NAME(map_update_elem)), EXPORT(JIT_HELPER_FUNC_NAME(map_lookup_elem)), EXPORT(JIT_HELPER_FUNC_NAME(map_get_next_key)),