[PATCH 0/7] tracing/user_events: Update user_events ABI from
From: Beau Belgrave
Date: Fri Apr 01 2022 - 19:43:33 EST
This series covers the changes that were brought up once user_events went into
5.18. The largest change is moving away from byte index to a bit index, as
first suggested by Mathieu Desnoyers.
The other changes are either fixes that have accumulated or found by Mathieu.
NOTE: The sample and self-tests do not build unless you manually install
user_events.h into usr/include/linux.
Link: https://lore.kernel.org/all/2059213643.196683.1648499088753.JavaMail.zimbra@xxxxxxxxxxxx/
Psuedo code example of typical usage with the new ABI:
struct user_reg reg;
int page_fd = open("user_events_status", O_RDWR);
char *page_data = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_SHARED, page_fd, 0);
close(page_fd);
int data_fd = open("user_events_data", O_RDWR);
reg.size = sizeof(reg);
reg.name_args = (__u64)"test";
ioctl(data_fd, DIAG_IOCSREG, ®);
int status_id = reg.status_index;
int status_mask = reg.status_mask;
int write_id = reg.write_index;
struct iovec io[2];
io[0].iov_base = &write_id;
io[0].iov_len = sizeof(write_id);
io[1].iov_base = payload;
io[1].iov_len = sizeof(payload);
if (page_data[status_id] & status_mask)
writev(data_fd, io, 2);
Beau Belgrave (7):
tracing/user_events: Fix repeated word in comments
tracing/user_events: Use NULL for strstr checks
tracing/user_events: Use WRITE instead of READ for io vector import
tracing/user_events: Ensure user provided strings are safely formatted
tracing/user_events: Use refcount instead of atomic for ref tracking
tracing/user_events: Use bits vs bytes for enabled status page data
tracing/user_events: Update ABI documentation to align to bits vs
bytes
Documentation/trace/user_events.rst | 46 ++--
include/linux/user_events.h | 19 +-
kernel/trace/trace_events_user.c | 213 ++++++++++++------
samples/user_events/example.c | 12 +-
.../selftests/user_events/ftrace_test.c | 16 +-
.../testing/selftests/user_events/perf_test.c | 6 +-
6 files changed, 187 insertions(+), 125 deletions(-)
base-commit: bfdf01279299f1254561d6c2072f1919e457e23a
--
2.25.1