This includes 3 minor fixes.
- Have writing to trace file clear the irqsoff (and friends) tracer - trace_pipe behavior for instance buffers was different than top buffer - Show a message of why mmiotrace doesn't start from commandline -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEEQEw9Eu0DdyUUkuUUybkF8mrZjcsFAlnCbM8UHHJvc3RlZHRA Z29vZG1pcy5vcmcACgkQybkF8mrZjcvoNQgAmkoyQo7IdwSRqyJrx7GiyF5gZjlw CU+nGmmHDMKBLqAoVuNJO1PIDMLJCDXi2Ye5DEZ5nfz1onFuceNo6bOXlExqercC YGgFg9ua+I7vHuKrHbsAZhNVwOJ92N3QgYIlqUj60DTLTkid+3TD+aJLxkSAQK9B MoJE8aZnZXlLjoSBXqJbd/BLstDyDWP7P74Z2dQ/O81DBJeJpMFRdwNFsaDh6om8 eX1TFIv77rdTyyNfbY6JC/IG81qQcPdsBQy1mX7V6uTR/XrphIzmMfKEpU8hIDg+ O103XLUamcZw3vdL5uvaMMvTzN4f0Apn5tKb7wPrgKKI+m4/6n4mx9EhsA== =jpsM -----END PGP SIGNATURE----- Merge tag 'trace-v4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes from Steven Rostedt: "This includes three minor fixes. - Have writing to trace file clear the irqsoff (and friends) tracer - trace_pipe behavior for instance buffers was different than top buffer - Show a message of why mmiotrace doesn't start from commandline" * tag 'trace-v4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Fix trace_pipe behavior for instance traces tracing: Ignore mmiotrace from kernel commandline tracing: Erase irqsoff trace with empty write
This commit is contained in:
Коммит
c52f56a69d
|
@ -4020,11 +4020,17 @@ static int tracing_open(struct inode *inode, struct file *file)
|
||||||
/* If this file was open for write, then erase contents */
|
/* If this file was open for write, then erase contents */
|
||||||
if ((file->f_mode & FMODE_WRITE) && (file->f_flags & O_TRUNC)) {
|
if ((file->f_mode & FMODE_WRITE) && (file->f_flags & O_TRUNC)) {
|
||||||
int cpu = tracing_get_cpu(inode);
|
int cpu = tracing_get_cpu(inode);
|
||||||
|
struct trace_buffer *trace_buf = &tr->trace_buffer;
|
||||||
|
|
||||||
|
#ifdef CONFIG_TRACER_MAX_TRACE
|
||||||
|
if (tr->current_trace->print_max)
|
||||||
|
trace_buf = &tr->max_buffer;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (cpu == RING_BUFFER_ALL_CPUS)
|
if (cpu == RING_BUFFER_ALL_CPUS)
|
||||||
tracing_reset_online_cpus(&tr->trace_buffer);
|
tracing_reset_online_cpus(trace_buf);
|
||||||
else
|
else
|
||||||
tracing_reset(&tr->trace_buffer, cpu);
|
tracing_reset(trace_buf, cpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file->f_mode & FMODE_READ) {
|
if (file->f_mode & FMODE_READ) {
|
||||||
|
@ -5358,6 +5364,13 @@ static int tracing_set_tracer(struct trace_array *tr, const char *buf)
|
||||||
if (t == tr->current_trace)
|
if (t == tr->current_trace)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
/* Some tracers won't work on kernel command line */
|
||||||
|
if (system_state < SYSTEM_RUNNING && t->noboot) {
|
||||||
|
pr_warn("Tracer '%s' is not allowed on command line, ignored\n",
|
||||||
|
t->name);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
/* Some tracers are only allowed for the top level buffer */
|
/* Some tracers are only allowed for the top level buffer */
|
||||||
if (!trace_ok_for_array(t, tr)) {
|
if (!trace_ok_for_array(t, tr)) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
|
@ -5667,7 +5680,7 @@ static int tracing_wait_pipe(struct file *filp)
|
||||||
*
|
*
|
||||||
* iter->pos will be 0 if we haven't read anything.
|
* iter->pos will be 0 if we haven't read anything.
|
||||||
*/
|
*/
|
||||||
if (!tracing_is_on() && iter->pos)
|
if (!tracer_tracing_is_on(iter->tr) && iter->pos)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
mutex_unlock(&iter->mutex);
|
mutex_unlock(&iter->mutex);
|
||||||
|
|
|
@ -444,6 +444,8 @@ struct tracer {
|
||||||
#ifdef CONFIG_TRACER_MAX_TRACE
|
#ifdef CONFIG_TRACER_MAX_TRACE
|
||||||
bool use_max_tr;
|
bool use_max_tr;
|
||||||
#endif
|
#endif
|
||||||
|
/* True if tracer cannot be enabled in kernel param */
|
||||||
|
bool noboot;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -282,6 +282,7 @@ static struct tracer mmio_tracer __read_mostly =
|
||||||
.close = mmio_close,
|
.close = mmio_close,
|
||||||
.read = mmio_read,
|
.read = mmio_read,
|
||||||
.print_line = mmio_print_line,
|
.print_line = mmio_print_line,
|
||||||
|
.noboot = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
__init static int init_mmio_trace(void)
|
__init static int init_mmio_trace(void)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче