Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752248AbcKZHIF (ORCPT ); Sat, 26 Nov 2016 02:08:05 -0500 Received: from szxga03-in.huawei.com ([119.145.14.66]:19083 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751678AbcKZHHN (ORCPT ); Sat, 26 Nov 2016 02:07:13 -0500 From: Wang Nan To: , CC: , , , , , Wang Nan , Jiri Olsa Subject: [PATCH v3 30/30] perf clang jit: Export getpid() to perf hook Date: Sat, 26 Nov 2016 07:03:54 +0000 Message-ID: <20161126070354.141764-31-wangnan0@huawei.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20161126070354.141764-1-wangnan0@huawei.com> References: <20161126070354.141764-1-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.107.193.248] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1757 Lines: 44 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(+) 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 5c1efe8..213c58f 100644 --- a/tools/perf/util/c++/clang.cpp +++ b/tools/perf/util/c++/clang.cpp @@ -236,6 +236,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)), -- 2.10.1