[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200124211705.24759-3-dxu@dxuuu.xyz>
Date: Fri, 24 Jan 2020 13:17:04 -0800
From: Daniel Xu <dxu@...uu.xyz>
To: bpf@...r.kernel.org, ast@...nel.org, daniel@...earbox.net,
songliubraving@...com, yhs@...com, andriin@...com
Cc: Daniel Xu <dxu@...uu.xyz>, linux-kernel@...r.kernel.org,
kernel-team@...com, peterz@...radead.org, mingo@...hat.com,
acme@...nel.org
Subject: [PATCH v4 bpf-next 2/3] tools/bpf: Sync uapi header bpf.h
Sync the header file in a separate commit to help with external sync.
Signed-off-by: Daniel Xu <dxu@...uu.xyz>
---
tools/include/uapi/linux/bpf.h | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
index f1d74a2bd234..39bfba0091dc 100644
--- a/tools/include/uapi/linux/bpf.h
+++ b/tools/include/uapi/linux/bpf.h
@@ -2892,6 +2892,25 @@ union bpf_attr {
* Obtain the 64bit jiffies
* Return
* The 64 bit jiffies
+ *
+ * int bpf_perf_prog_read_branches(struct bpf_perf_event_data *ctx, void *buf, u32 buf_size, u64 flags)
+ * Description
+ * For an eBPF program attached to a perf event, retrieve the
+ * branch records (struct perf_branch_entry) associated to *ctx*
+ * and store it in the buffer pointed by *buf* up to size
+ * *buf_size* bytes.
+ *
+ * The *flags* can be set to **BPF_F_GET_BR_SIZE** to instead
+ * return the number of bytes required to store all the branch
+ * entries. If this flag is set, *buf* may be NULL.
+ * Return
+ * On success, number of bytes written to *buf*. On error, a
+ * negative value.
+ *
+ * **-EINVAL** if arguments invalid or **buf_size** not a multiple
+ * of sizeof(struct perf_branch_entry).
+ *
+ * **-ENOENT** if architecture does not support branch records.
*/
#define __BPF_FUNC_MAPPER(FN) \
FN(unspec), \
@@ -3012,7 +3031,8 @@ union bpf_attr {
FN(probe_read_kernel_str), \
FN(tcp_send_ack), \
FN(send_signal_thread), \
- FN(jiffies64),
+ FN(jiffies64), \
+ FN(perf_prog_read_branches),
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
* function eBPF program intends to call
@@ -3091,6 +3111,9 @@ enum bpf_func_id {
/* BPF_FUNC_sk_storage_get flags */
#define BPF_SK_STORAGE_GET_F_CREATE (1ULL << 0)
+/* BPF_FUNC_perf_prog_read_branches flags. */
+#define BPF_F_GET_BR_SIZE (1ULL << 0)
+
/* Mode for BPF_FUNC_skb_adjust_room helper. */
enum bpf_adj_room_mode {
BPF_ADJ_ROOM_NET,
--
2.21.1
Powered by blists - more mailing lists