FAILED: Patch "tracing: Apply trace filters on all output channels" failed to apply to 4.19-stable tree
Subsystems (2)
Sasha Levin
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Thanks,
Sasha
------------------ original commit in Linus's tree ------------------
From 6c34df6f350df9579ce99d887a2b5fa14cc13b32 Mon Sep 17 00:00:00 2001
From: Pingfan Liu <[email protected]>
Date: Sat, 14 Aug 2021 11:45:38 +0800
Subject: [PATCH] tracing: Apply trace filters on all output channels
The event filters are not applied on all of the output, which results in the flood of printk when using tp_printk. Unfolding event_trigger_unlock_commit_regs() into trace_event_buffer_commit(), so the filters can be applied on every output.
--- kernel/trace/trace.c | 18 +++++++++++++++--- kernel/trace/trace.h | 32 -------------------------------- 2 files changed, 15 insertions(+), 35 deletions(-)
kernel/trace/trace.c +15 -3
@@ -2897,14 +2897,26 @@ int tracepoint_printk_sysctl(struct ctl_table *table, int write,void trace_event_buffer_commit (struct trace_event_buffer *fbuffer) { +enum event_trigger_type tt =ETT_NONE ; +struct trace_event_file *file = fbuffer->trace_file; + +if (__event_trigger_test_discard (file, fbuffer->buffer, fbuffer->event, + fbuffer->entry, &tt)) + goto discard; +if (static_key_false (&tracepoint_printk_key.key))output_printk (fbuffer);if (static_branch_unlikely (&trace_event_exports_enabled))ftrace_exports (fbuffer->event,TRACE_EXPORT_EVENT ); -event_trigger_unlock_commit_regs (fbuffer->trace_file, fbuffer->buffer, - fbuffer->event, fbuffer->entry, - fbuffer->trace_ctx, fbuffer->regs); + +trace_buffer_unlock_commit_regs (file->tr, fbuffer->buffer, + fbuffer->event, fbuffer->trace_ctx, fbuffer->regs); + +discard: +if (tt) +event_triggers_post_call (file, tt); + }EXPORT_SYMBOL_GPL (trace_event_buffer_commit);
kernel/trace/trace.h +0 -32
@@ -1389,38 +1389,6 @@ event_trigger_unlock_commit(struct trace_event_file *file,event_triggers_post_call (file, tt); } -/** -* event_trigger_unlock_commit_regs - handle triggers and finish event commit -* @file: The file pointer associated with the event -* @buffer: The ring buffer that the event is being written to -* @event: The event meta data in the ring buffer -* @entry: The event itself -* @trace_ctx: The tracing context flags. -* -* This is a helper function to handle triggers that require data -* from the event itself. It also tests the event against filters and -* if the event is soft disabled and should be discarded. -* -* Same as event_trigger_unlock_commit() but calls -* trace_buffer_unlock_commit_regs() instead of trace_buffer_unlock_commit(). -*/ -static inline void -event_trigger_unlock_commit_regs (struct trace_event_file *file, -struct trace_buffer *buffer, -struct ring_buffer_event *event, -void *entry,unsigned int trace_ctx, -struct pt_regs *regs) -{ -enum event_trigger_type tt =ETT_NONE ; - -if (!__event_trigger_test_discard (file, buffer, event, entry, &tt)) -trace_buffer_unlock_commit_regs (file->tr, buffer, event, - trace_ctx, regs); - -if (tt) -event_triggers_post_call (file, tt); -} -#define FILTER_PRED_INVALID ((unsigned short)-1)#define FILTER_PRED_IS_RIGHT (1 << 15)#define FILTER_PRED_FOLD (1 << 15)
Signature · 1 line
2.30.2