Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp286254imu; Wed, 21 Nov 2018 20:01:52 -0800 (PST) X-Google-Smtp-Source: AFSGD/UQsFT6cv1irZk00U3wZdkXCMdc3y3Im6qk9zWuL830nkiCI6MT7755ITXV/JeMQhcsBqA9 X-Received: by 2002:a17:902:365:: with SMTP id 92mr9184574pld.327.1542859312296; Wed, 21 Nov 2018 20:01:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542859312; cv=none; d=google.com; s=arc-20160816; b=umhfZg7Z3UQiYm0URyrKS/CshZZxiyu3k+5fdaiQGgrzvPLBOUTD2D4Ytnw/0RW6aB 3iiYdW+Iik0n7JmIi9lz8x1rIFdebKZPcegDTr8CGk/08NydYk5G0ZsUCL40Zkqz542J eX74IQxHlaGWt0ARRS4LwYkb6KAtSeap3KhmWKdNnvNks+nOmE/7iqt9wyDXObBU1HY8 Q18hJKXcXnAQHWAL3eJpX3McT9jercSn1yVhgVNEJK44OJGQrMuQCIMS7ZLaAlRToIhZ 4yIWtVl1fASVj9KFCNQLBM2xaNeTe5/BPItC7DcThWoP0JPRyYRXfjN6d8vvi4TPuXPk gzpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject :smtp-origin-cluster:cc:to:smtp-origin-hostname:from :smtp-origin-hostprefix:dkim-signature; bh=RiHwm2h8NVbXXPTiYyLmwjF8A6ju8lwMsd5VnZdgrt4=; b=L8YwuY+x4j7xVks3CjombZY2LX53eF6vPvj5NaleCth3TPfIbTbBrwTR48mjSRpDx2 f/6N/ShWXUTPo4uZN8iURldMr806JkShwlR4Uub8+sccwf2kqTylut+Tim6iXdxA6sBU 2FcOhOH2YOq0Puf4XtSBmcFs6NpW6r5sLM0U+8X9ZZ0vnHzyyTvPSghWdEqiKV4Zk4QB LmI5mEn83HpB1hTRlQusTsrCtrpzWejY9yRkU6YmuY3W/f7zBPxPbOX5opf6Zj+aumql N0welyzJa/CG7nn27M36iyIgk4gGq2BrdvQX7+1l1XSp/zeLyGR8ZtNPYVm2cdVQfD1E 8QIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fb.com header.s=facebook header.b=GvLtOU1Z; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=fb.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f10si47333359pgl.528.2018.11.21.20.01.36; Wed, 21 Nov 2018 20:01:52 -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; dkim=pass header.i=@fb.com header.s=facebook header.b=GvLtOU1Z; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=fb.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387764AbeKVGbZ (ORCPT + 99 others); Thu, 22 Nov 2018 01:31:25 -0500 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:60784 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1732576AbeKVGbY (ORCPT ); Thu, 22 Nov 2018 01:31:24 -0500 Received: from pps.filterd (m0001255.ppops.net [127.0.0.1]) by mx0b-00082601.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id wALJpRVF002473 for ; Wed, 21 Nov 2018 11:55:41 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=facebook; bh=RiHwm2h8NVbXXPTiYyLmwjF8A6ju8lwMsd5VnZdgrt4=; b=GvLtOU1Z2OUeN/nMcY5i3cNifmIA3xqRIGpUS3X4f+qMvv/hukrYn8AzA40X6YMv+AqN mMvxOvdNYBrkRNVAvN4m0635fCps5Rgc+EhrQ0ekc6/PHnyPtrldiurhhtZv3zRBgAOp 6DiAHUHaOOyjqC8xK7FhjDRtKzPLbsiYGH0= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0b-00082601.pphosted.com with ESMTP id 2nwdmtr27f-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Wed, 21 Nov 2018 11:55:40 -0800 Received: from mx-out.facebook.com (2620:10d:c081:10::13) by mail.thefacebook.com (2620:10d:c081:35::130) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) id 15.1.1531.3; Wed, 21 Nov 2018 11:55:38 -0800 Received: by devbig006.ftw2.facebook.com (Postfix, from userid 4523) id 1484062E19DA; Wed, 21 Nov 2018 11:55:31 -0800 (PST) Smtp-Origin-Hostprefix: devbig From: Song Liu Smtp-Origin-Hostname: devbig006.ftw2.facebook.com To: , CC: Song Liu , , , , , Smtp-Origin-Cluster: ftw2c04 Subject: [PATCH perf,bpf 0/5] reveal invisible bpf programs Date: Wed, 21 Nov 2018 11:54:57 -0800 Message-ID: <20181121195502.3259930-1-songliubraving@fb.com> X-Mailer: git-send-email 2.17.1 X-FB-Internal: Safe MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-11-21_09:,, signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Changes RFC -> PATCH v1: 1. In perf-record, poll vip events in a separate thread; 2. Add tag to bpf prog name; 3. Small refactorings. Original cover letter (with minor revisions): This is to follow up Alexei's early effort to show bpf programs https://www.spinics.net/lists/netdev/msg524232.html In this version, PERF_RECORD_BPF_EVENT is introduced to send real time BPF load/unload events to user space. In user space, perf-record is modified to listen to these events (through a dedicated ring buffer) and generate detailed information about the program (struct bpf_prog_info_event). Then, perf-report translates these events into proper symbols. With this set, perf-report will show bpf program as: 18.49% 0.16% test [kernel.vmlinux] [k] ksys_write 18.01% 0.47% test [kernel.vmlinux] [k] vfs_write 17.02% 0.40% test bpf_prog [k] bpf_prog_07367f7ba80df72b_ 16.97% 0.10% test [kernel.vmlinux] [k] __vfs_write 16.86% 0.12% test [kernel.vmlinux] [k] comm_write 16.67% 0.39% test [kernel.vmlinux] [k] bpf_probe_read Note that, the program name is still work in progress, it will be cleaner with function types in BTF. Please share your comments on this. Thanks, Song Song Liu (5): perf, bpf: Introduce PERF_RECORD_BPF_EVENT perf: sync tools/include/uapi/linux/perf_event.h perf util: basic handling of PERF_RECORD_BPF_EVENT perf util: introduce bpf_prog_info_event perf util: generate bpf_prog_info_event for short living bpf programs include/linux/perf_event.h | 5 + include/uapi/linux/perf_event.h | 27 ++- kernel/bpf/syscall.c | 4 + kernel/events/core.c | 82 ++++++- tools/include/uapi/linux/perf_event.h | 27 ++- tools/perf/builtin-record.c | 91 +++++++- tools/perf/builtin-report.c | 2 + tools/perf/util/Build | 2 + tools/perf/util/bpf-info.c | 305 ++++++++++++++++++++++++++ tools/perf/util/bpf-info.h | 29 +++ tools/perf/util/event.c | 21 ++ tools/perf/util/event.h | 29 +++ tools/perf/util/evlist.c | 58 ++++- tools/perf/util/evlist.h | 6 + tools/perf/util/evsel.c | 9 + tools/perf/util/evsel.h | 3 + tools/perf/util/machine.c | 10 + tools/perf/util/machine.h | 2 + tools/perf/util/session.c | 8 + tools/perf/util/tool.h | 7 +- 20 files changed, 714 insertions(+), 13 deletions(-) create mode 100644 tools/perf/util/bpf-info.c create mode 100644 tools/perf/util/bpf-info.h -- 2.17.1