mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-03-03 18:28:01 +01:00
tracing: Clean up use of trace_create_maxlat_file()
In trace.c, the function trace_create_maxlat_file() is defined behind the
#ifdef CONFIG_TRACER_MAX_TRACE block. The #else part defines it as:
#define trace_create_maxlat_file(tr, d_tracer) \
trace_create_file("tracing_max_latency", TRACE_MODE_WRITE, \
d_tracer, tr, &tracing_max_lat_fops)
But the one place that it it used has:
#ifdef CONFIG_TRACER_MAX_TRACE
trace_create_maxlat_file(tr, d_tracer);
#endif
Which is pointless and also wrong!
It only gets created when both CONFIG_TRACE_MAX_TRACE and CONFIG_FS_NOTIFY
is defined, but the file itself should not be dependent on
CONFIG_FS_NOTIFY. Always create that file when TRACE_MAX_TRACE is defined
regardless if FS_NOTIFY is or is not.
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Link: https://patch.msgid.link/20260207191101.0e014abd@robin
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
committed by
Steven Rostedt (Google)
parent
326669faf3
commit
ba73713da5
@@ -1912,10 +1912,7 @@ static ssize_t trace_seq_to_buffer(struct trace_seq *s, void *buf, size_t cnt)
|
||||
unsigned long __read_mostly tracing_thresh;
|
||||
|
||||
#ifdef CONFIG_TRACER_MAX_TRACE
|
||||
static const struct file_operations tracing_max_lat_fops;
|
||||
|
||||
#ifdef LATENCY_FS_NOTIFY
|
||||
|
||||
static struct workqueue_struct *fsnotify_wq;
|
||||
|
||||
static void latency_fsnotify_workfn(struct work_struct *work)
|
||||
@@ -1932,17 +1929,6 @@ static void latency_fsnotify_workfn_irq(struct irq_work *iwork)
|
||||
queue_work(fsnotify_wq, &tr->fsnotify_work);
|
||||
}
|
||||
|
||||
static void trace_create_maxlat_file(struct trace_array *tr,
|
||||
struct dentry *d_tracer)
|
||||
{
|
||||
INIT_WORK(&tr->fsnotify_work, latency_fsnotify_workfn);
|
||||
init_irq_work(&tr->fsnotify_irqwork, latency_fsnotify_workfn_irq);
|
||||
tr->d_max_latency = trace_create_file("tracing_max_latency",
|
||||
TRACE_MODE_WRITE,
|
||||
d_tracer, tr,
|
||||
&tracing_max_lat_fops);
|
||||
}
|
||||
|
||||
__init static int latency_fsnotify_init(void)
|
||||
{
|
||||
fsnotify_wq = alloc_workqueue("tr_max_lat_wq",
|
||||
@@ -1967,14 +1953,22 @@ void latency_fsnotify(struct trace_array *tr)
|
||||
*/
|
||||
irq_work_queue(&tr->fsnotify_irqwork);
|
||||
}
|
||||
#endif /* !LATENCY_FS_NOTIFY */
|
||||
|
||||
#else /* !LATENCY_FS_NOTIFY */
|
||||
|
||||
#define trace_create_maxlat_file(tr, d_tracer) \
|
||||
trace_create_file("tracing_max_latency", TRACE_MODE_WRITE, \
|
||||
d_tracer, tr, &tracing_max_lat_fops)
|
||||
static const struct file_operations tracing_max_lat_fops;
|
||||
|
||||
static void trace_create_maxlat_file(struct trace_array *tr,
|
||||
struct dentry *d_tracer)
|
||||
{
|
||||
#ifdef LATENCY_FS_NOTIFY
|
||||
INIT_WORK(&tr->fsnotify_work, latency_fsnotify_workfn);
|
||||
init_irq_work(&tr->fsnotify_irqwork, latency_fsnotify_workfn_irq);
|
||||
#endif
|
||||
tr->d_max_latency = trace_create_file("tracing_max_latency",
|
||||
TRACE_MODE_WRITE,
|
||||
d_tracer, tr,
|
||||
&tracing_max_lat_fops);
|
||||
}
|
||||
|
||||
/*
|
||||
* Copy the new maximum trace into the separate maximum-trace
|
||||
@@ -2109,7 +2103,9 @@ update_max_tr_single(struct trace_array *tr, struct task_struct *tsk, int cpu)
|
||||
__update_max_tr(tr, tsk, cpu);
|
||||
arch_spin_unlock(&tr->max_lock);
|
||||
}
|
||||
|
||||
#else /* !CONFIG_TRACER_MAX_TRACE */
|
||||
static inline void trace_create_maxlat_file(struct trace_array *tr,
|
||||
struct dentry *d_tracer) { }
|
||||
#endif /* CONFIG_TRACER_MAX_TRACE */
|
||||
|
||||
struct pipe_wait {
|
||||
@@ -10664,9 +10660,7 @@ init_tracer_tracefs(struct trace_array *tr, struct dentry *d_tracer)
|
||||
|
||||
create_trace_options_dir(tr);
|
||||
|
||||
#ifdef CONFIG_TRACER_MAX_TRACE
|
||||
trace_create_maxlat_file(tr, d_tracer);
|
||||
#endif
|
||||
|
||||
if (ftrace_create_function_files(tr, d_tracer))
|
||||
MEM_FAIL(1, "Could not allocate function filter files");
|
||||
|
||||
Reference in New Issue
Block a user