[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211109142506.3c280469@gandalf.local.home>
Date: Tue, 9 Nov 2021 14:25:06 -0500
From: Steven Rostedt <rostedt@...dmis.org>
To: Beau Belgrave <beaub@...ux.microsoft.com>
Cc: Masami Hiramatsu <mhiramat@...nel.org>,
linux-trace-devel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 02/10] user_events: Add minimal support for
trace_event into ftrace
On Tue, 9 Nov 2021 11:08:44 -0800
Beau Belgrave <beaub@...ux.microsoft.com> wrote:
> We need strings to be able to be emitted and recorded in eBPF, perf and
> ftrace. So I would rather go after a solution that lets us keep these in
> the ring buffers, even if it means a perf hit.
>
> Guess what's left is to where the best place to check is, checking in
> the filter with unsafe flags would let us keep most of the perf (we just
> check the undersize case, 1 branch). When these unsafe types are
> filtered then a perf tax is imposed to keep things safe.
>
> It sounded like Steven wanted to think about this a bit, so I'll wait a
> bit before poking again for consensus :)
>
> Do you have any strong feelings about where it goes?
IIUC, the writing into the trace event is done via one big blob, correct?
That is this:
+ if (likely(atomic_read(&tp->key.enabled) > 0)) {
+ struct tracepoint_func *probe_func_ptr;
+ user_event_func_t probe_func;
+ void *tpdata;
+ void *kdata;
+ u32 datalen;
+
+ kdata = kmalloc(i->count, GFP_KERNEL);
+
+ if (unlikely(!kdata))
+ return -ENOMEM;
+
+ datalen = copy_from_iter(kdata, i->count, i);
+
+ rcu_read_lock_sched();
+
+ probe_func_ptr = rcu_dereference_sched(tp->funcs);
+
+ if (probe_func_ptr) {
+ do {
+ probe_func = probe_func_ptr->func;
+ tpdata = probe_func_ptr->data;
+ probe_func(user, kdata, datalen, tpdata);
+ } while ((++probe_func_ptr)->func);
+ }
+
+ rcu_read_unlock_sched();
+
+ kfree(kdata);
So we really are just interested in making sure that the output is correct?
That is, the reading of the trace file?
-- Steve
Powered by blists - more mailing lists