From mboxrd@z Thu Jan 1 00:00:00 1970 From: Song Liu Subject: [PATCH bpf 1/3] bpf: show real jited prog address in /proc/kallsyms Date: Thu, 1 Nov 2018 00:00:56 -0700 Message-ID: <20181101070058.2760251-2-songliubraving@fb.com> References: <20181101070058.2760251-1-songliubraving@fb.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , Song Liu , , , To: Return-path: Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:50418 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727716AbeKAQCv (ORCPT ); Thu, 1 Nov 2018 12:02:51 -0400 Received: from pps.filterd (m0109331.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id wA16qXvN005388 for ; Thu, 1 Nov 2018 00:01:08 -0700 Received: from maileast.thefacebook.com ([199.201.65.23]) by mx0a-00082601.pphosted.com with ESMTP id 2nfqhhgme0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Thu, 01 Nov 2018 00:01:08 -0700 In-Reply-To: <20181101070058.2760251-1-songliubraving@fb.com> Sender: netdev-owner@vger.kernel.org List-ID: Currently, /proc/kallsyms shows page address of jited bpf program. This is not ideal for detailed profiling (find hot instructions from stack traces). This patch replaces the page address with real prog start address. Signed-off-by: Song Liu --- kernel/bpf/core.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index 6377225b2082..1a796e0799ec 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -553,7 +553,6 @@ bool is_bpf_text_address(unsigned long addr) int bpf_get_kallsym(unsigned int symnum, unsigned long *value, char *type, char *sym) { - unsigned long symbol_start, symbol_end; struct bpf_prog_aux *aux; unsigned int it = 0; int ret = -ERANGE; @@ -566,10 +565,9 @@ int bpf_get_kallsym(unsigned int symnum, unsigned long *value, char *type, if (it++ != symnum) continue; - bpf_get_prog_addr_region(aux->prog, &symbol_start, &symbol_end); bpf_get_prog_name(aux->prog, sym); - *value = symbol_start; + *value = (unsigned long)aux->prog->bpf_func; *type = BPF_SYM_ELF_TYPE; ret = 0; -- 2.17.1