Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753097AbdLFWp2 (ORCPT ); Wed, 6 Dec 2017 17:45:28 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:46750 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751950AbdLFWpX (ORCPT ); Wed, 6 Dec 2017 17:45:23 -0500 Smtp-Origin-Hostprefix: devbig From: Song Liu Smtp-Origin-Hostname: devbig102.frc2.facebook.com To: , , , , , , CC: , Song Liu Smtp-Origin-Cluster: frc2c02 Subject: [PATCH v5] perf_event_open.2: add type kprobe and uprobe Date: Wed, 6 Dec 2017 14:45:12 -0800 Message-ID: <20171206224518.3598254-3-songliubraving@fb.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171206224518.3598254-1-songliubraving@fb.com> References: <20171206224518.3598254-1-songliubraving@fb.com> X-FB-Internal: Safe MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-12-06_08:,, signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2373 Lines: 91 Two new types kprobe and uprobe are being added to perf_event_open, which allow creating kprobe or uprobe with perf_event_open. This patch adds information about these types. Signed-off-by: Song Liu --- man2/perf_event_open.2 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/man2/perf_event_open.2 b/man2/perf_event_open.2 index c91da3f..02d6673 100644 --- a/man2/perf_event_open.2 +++ b/man2/perf_event_open.2 @@ -256,11 +256,15 @@ struct perf_event_attr { union { __u64 bp_addr; /* breakpoint address */ + __u64 kprobe_func; /* for perf_kprobe */ + __u64 uprobe_path; /* for perf_uprobe */ __u64 config1; /* extension of config */ }; union { __u64 bp_len; /* breakpoint length */ + __u64 kprobe_addr; /* with kprobe_func == NULL */ + __u64 probe_offset; /* for perf_[k,u]probe */ __u64 config2; /* extension of config1 */ }; __u64 branch_sample_type; /* enum perf_branch_sample_type */ @@ -336,6 +340,13 @@ field. For instance, .I /sys/bus/event_source/devices/cpu/type contains the value for the core CPU PMU, which is usually 4. +.TP +.BR kprobe " and " uprobe " (since Linux 4.TBD)" +These two dynamic PMU creates kprobe or uprobe with perf_event_open and +attaches it to the file descriptor. +See fields +.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset +for more details. .RE .TP .I "size" @@ -627,6 +638,45 @@ then leave .I config set to zero. Its parameters are set in other places. +.PP +If +.I type +is +.BR kprobe +or +.BR uprobe , +set +.IR retprobe +(bit 0 of +.IR config , +see /sys/bus/event_source/devices/[k,u]probe/format/retprobe) +for kretprobe/uretprobe. See fields +.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset +for more details. +.RE +.TP +.IR kprobe_func ", " uprobe_path ", " kprobe_addr ", and " probe_offset +.EE +These fields describes the kprobe/uprobe for dynamic PMU +.BR kprobe +and +.BR uprobe . +For +.BR kprobe ": " +use +.I kprobe_func +and +.IR probe_offset , +or use +.I kprobe_addr +and leave +.I kprobe_func +as NULL. For +.BR uprobe ": " +use +.I uprobe_path +and +.IR probe_offset . .RE .TP .IR sample_period ", " sample_freq -- 2.9.5