From: Beau Belgrave <beaub@linux.microsoft.com>
To: rostedt@goodmis.org, mhiramat@kernel.org
Cc: linux-trace-devel@vger.kernel.org, linux-kernel@vger.kernel.org,
beaub@linux.microsoft.com
Subject: [PATCH v5 01/12] user_events: Add UABI header for user access to user_events
Date: Mon, 15 Nov 2021 16:50:36 -0800 [thread overview]
Message-ID: <20211116005047.1808-2-beaub@linux.microsoft.com> (raw)
In-Reply-To: <20211116005047.1808-1-beaub@linux.microsoft.com>
Define the basic structs and ioctl commands that allow user processes to
interact with user_events.
Signed-off-by: Beau Belgrave <beaub@linux.microsoft.com>
---
include/uapi/linux/user_events.h | 68 ++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 include/uapi/linux/user_events.h
diff --git a/include/uapi/linux/user_events.h b/include/uapi/linux/user_events.h
new file mode 100644
index 000000000000..5bff99418deb
--- /dev/null
+++ b/include/uapi/linux/user_events.h
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * Copyright (c) 2021, Microsoft Corporation.
+ *
+ * Authors:
+ * Beau Belgrave <beaub@linux.microsoft.com>
+ */
+#ifndef _UAPI_LINUX_USER_EVENTS_H
+#define _UAPI_LINUX_USER_EVENTS_H
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+
+#ifdef __KERNEL__
+#include <linux/uio.h>
+#else
+#include <sys/uio.h>
+#endif
+
+#define USER_EVENTS_SYSTEM "user_events"
+#define USER_EVENTS_PREFIX "u:"
+
+/* Bits 0-6 are for known probe types, Bit 7 is for unknown probes */
+#define EVENT_BIT_FTRACE 0
+#define EVENT_BIT_PERF 1
+#define EVENT_BIT_OTHER 7
+
+#define EVENT_STATUS_FTRACE (1 << EVENT_BIT_FTRACE)
+#define EVENT_STATUS_PERF (1 << EVENT_BIT_PERF)
+#define EVENT_STATUS_OTHER (1 << EVENT_BIT_OTHER)
+
+/* Use raw iterator for attached BPF program(s), no affect on ftrace/perf */
+#define FLAG_BPF_ITER (1 << 0)
+
+struct user_reg {
+ __u32 size;
+ __u64 name_args;
+ __u32 status_index;
+ __u32 write_index;
+};
+
+#define DIAG_IOC_MAGIC '*'
+#define DIAG_IOCSREG _IOWR(DIAG_IOC_MAGIC, 0, struct user_reg*)
+#define DIAG_IOCSDEL _IOW(DIAG_IOC_MAGIC, 1, char*)
+
+enum {
+ USER_BPF_DATA_KERNEL,
+ USER_BPF_DATA_USER,
+ USER_BPF_DATA_ITER,
+};
+
+struct user_bpf_iter {
+ __u32 iov_offset;
+ __u32 nr_segs;
+ const struct iovec *iov;
+};
+
+struct user_bpf_context {
+ __u32 data_type;
+ __u32 data_len;
+ union {
+ void *kdata;
+ void *udata;
+ struct user_bpf_iter *iter;
+ };
+};
+
+#endif /* _UAPI_LINUX_USER_EVENTS_H */
--
2.17.1
next prev parent reply other threads:[~2021-11-16 0:53 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-16 0:50 [PATCH v5 00/12] user_events: Enable user processes to create and write to trace events Beau Belgrave
2021-11-16 0:50 ` Beau Belgrave [this message]
2021-11-16 0:50 ` [PATCH v5 02/12] user_events: Add minimal support for trace_event into ftrace Beau Belgrave
2021-11-18 2:50 ` Steven Rostedt
2021-11-18 20:01 ` Beau Belgrave
2021-11-16 0:50 ` [PATCH v5 03/12] user_events: Add print_fmt generation support for basic types Beau Belgrave
2021-11-16 0:50 ` [PATCH v5 04/12] user_events: Handle matching arguments from dyn_events Beau Belgrave
2021-11-16 0:50 ` [PATCH v5 05/12] user_events: Add basic perf and eBPF support Beau Belgrave
2021-11-16 0:50 ` [PATCH v5 06/12] user_events: Add self-test for ftrace integration Beau Belgrave
2021-11-16 0:50 ` [PATCH v5 07/12] user_events: Add self-test for dynamic_events integration Beau Belgrave
2021-11-16 0:50 ` [PATCH v5 08/12] user_events: Add self-test for perf_event integration Beau Belgrave
2021-11-16 0:50 ` [PATCH v5 09/12] user_events: Optimize writing events by only copying data once Beau Belgrave
2021-11-27 15:09 ` kernel test robot
2021-11-27 15:09 ` kernel test robot
2021-11-16 0:50 ` [PATCH v5 10/12] user_events: Add documentation file Beau Belgrave
2021-11-16 0:50 ` [PATCH v5 11/12] user_events: Add sample code for typical usage Beau Belgrave
2021-11-16 0:50 ` [PATCH v5 12/12] user_events: Validate user payloads for size and null termination Beau Belgrave
2021-11-16 21:11 ` Beau Belgrave
2021-11-18 1:52 ` Steven Rostedt
2021-11-18 19:45 ` Beau Belgrave
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211116005047.1808-2-beaub@linux.microsoft.com \
--to=beaub@linux.microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-devel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.