Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2340035imu; Tue, 6 Nov 2018 12:56:02 -0800 (PST) X-Google-Smtp-Source: AJdET5dIisHjQ0jrJMXVUY0eVighVKS3Dp3UP/m+NE/AwdSdhUlTutJy/DDRhyYtfrVVgHRjjnXU X-Received: by 2002:a17:902:1021:: with SMTP id b30-v6mr28290777pla.23.1541537762419; Tue, 06 Nov 2018 12:56:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541537762; cv=none; d=google.com; s=arc-20160816; b=BloyX6GP5GrW6In6ufMOrJwzB4xmK1j8ZLgBWul3HH3cnyknX79l1g1EzLmUMkGiFI L7wb7T6ABnXbXwN9jRzkjK3c66ve1+H5RPDNQDiexzkYg6Wu67s5CGv01e7MTWWFuopv kRTOMXgcLcG5No5hBZE1nSUj+XwahoU0N4wUbOM/zAnVw0RmDtG+qk6ICHjLv5QeYyJS YZkg8rvnPSVScIbf66Q/gCYaei/29plC08MhSFlIbItnmCGAlf+C6MSXolcVZYjLTMjc VzaH7EvxQTBYI6XJOD6JGN1H3fQGBbC6JQcNcaeaZ+sF1JtndA4ATFnrGIJGf7LnlG3T Z1UA== 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=cTzFXq2K3ix5ZX7cRxj9mAQi2QOcLu+0CTZ/lUtQMS4=; b=OG/n766MT2Fty0dfLq1+A7wq//nYwPIXodABybGk/ccrGXJn6VZnao5B2B7xQJsFqS fJnu8v0qkyn5C9KWS4VowwRvUjOmi8p5Mnu0M5J5G1VwaKPWmmjzFssOiT1NX2qGCmGa lOLTOU70y9mFOn0vYbvsvNJUzP04Qp+SYSHxjgDiHQmKMveZ7zmO4NpL4dK0hzHX7Pia E4FgoT2zhcmD8gPxfQNO23WGW4RsAcTliDKRdbfVk0OcX4qGHiol3wU3T7mvxoVZKXNL 8/ukNNQoTpusRkz7aSCnlzifAbML5au6Mn4ZEGy0yaa9Q0aVzWzPTc/6RZ8p7ilXPpsb uR2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fb.com header.s=facebook header.b=auTS5jxm; 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 a61-v6si51132977pla.430.2018.11.06.12.55.46; Tue, 06 Nov 2018 12:56:02 -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=auTS5jxm; 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 S2388708AbeKGGVy (ORCPT + 99 others); Wed, 7 Nov 2018 01:21:54 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:59780 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388626AbeKGGVx (ORCPT ); Wed, 7 Nov 2018 01:21:53 -0500 Received: from pps.filterd (m0148461.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id wA6KrAmt005635 for ; Tue, 6 Nov 2018 12:54:48 -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=cTzFXq2K3ix5ZX7cRxj9mAQi2QOcLu+0CTZ/lUtQMS4=; b=auTS5jxmnfSkK6EDXT4F3hPOIiFoscn+vRByNY+CakGFgx/ds5e4G6zr5RdU/VuhRKCT NTcin3bmQnTpDZf1rjto2C2WirDC3roCHE4QFN5SgSFPJx/Gpr7MH10AGTPutXy5HdlC Q647ldv+rRHH3HbfgAwXIedta6qauDp0R/s= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 2nkf4f0ng3-15 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Tue, 06 Nov 2018 12:54:48 -0800 Received: from mx-out.facebook.com (2620:10d:c081:10::13) by mail.thefacebook.com (2620:10d:c081:35::128) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) id 15.1.1531.3; Tue, 6 Nov 2018 12:53:29 -0800 Received: by devbig006.ftw2.facebook.com (Postfix, from userid 4523) id D824062E1CAE; Tue, 6 Nov 2018 12:53:24 -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: [RFC perf,bpf 0/5] reveal invisible bpf programs Date: Tue, 6 Nov 2018 12:52:41 -0800 Message-ID: <20181106205246.567448-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-06_10:,, 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 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_F 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 | 55 +++++ tools/perf/builtin-report.c | 2 + tools/perf/util/Build | 2 + tools/perf/util/bpf-info.c | 287 ++++++++++++++++++++++++++ tools/perf/util/bpf-info.h | 29 +++ tools/perf/util/event.c | 20 ++ tools/perf/util/event.h | 29 +++ tools/perf/util/evlist.c | 42 +++- tools/perf/util/evlist.h | 4 + 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, 646 insertions(+), 8 deletions(-) create mode 100644 tools/perf/util/bpf-info.c create mode 100644 tools/perf/util/bpf-info.h -- 2.17.1