Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'trace-v6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull tracing fixes from Steven Rostedt:

- Add Documentation/core-api/tracepoint.rst to TRACING in MAINTAINERS
file

Updates to the tracepoint.rst document should be reviewed by the
tracing maintainers.

- Fix warning triggered by perf attaching to synthetic events

The synthetic events do not add a function to be registered when perf
attaches to them. This causes a warning when perf registers a
synthetic event and passes a NULL pointer to the tracepoint register
function.

Ideally synthetic events should be updated to work with perf, but as
that's a feature and not a bug fix, simply now return -ENODEV when
perf tries to register an event that has a NULL pointer for its
function. This no longer causes a kernel warning and simply causes
the perf code to fail with an error message.

- Fix 32bit overflow in option flag test

The option's flags changed from 32 bits in size to 64 bits in size.
Fix one of the places that shift 1 by the option bit number to to be
1ULL.

- Fix the output of printing the direct jmp functions

The enabled_functions that shows how functions are being attached by
ftrace wasn't updated to accommodate the new direct jmp trampolines
that set the LSB of the pointer, and outputs garbage. Update the
output to handle the direct jmp trampolines.

* tag 'trace-v6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
ftrace: Fix address for jmp mode in t_show()
tracing: Fix UBSAN warning in __remove_instance()
tracing: Do not register unsupported perf events
MAINTAINERS: add tracepoint core-api doc files to TRACING

+9 -3
+1
MAINTAINERS
··· 26463 26463 S: Maintained 26464 26464 Q: https://patchwork.kernel.org/project/linux-trace-kernel/list/ 26465 26465 T: git git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git 26466 + F: Documentation/core-api/tracepoint.rst 26466 26467 F: Documentation/trace/* 26467 26468 F: fs/tracefs/ 26468 26469 F: include/linux/trace*.h
+5 -2
kernel/trace/ftrace.c
··· 4518 4518 unsigned long direct; 4519 4519 4520 4520 direct = ftrace_find_rec_direct(rec->ip); 4521 - if (direct) 4522 - seq_printf(m, "\n\tdirect-->%pS", (void *)direct); 4521 + if (direct) { 4522 + seq_printf(m, "\n\tdirect%s-->%pS", 4523 + ftrace_is_jmp(direct) ? "(jmp)" : "", 4524 + (void *)ftrace_jmp_get(direct)); 4525 + } 4523 4526 } 4524 4527 } 4525 4528
+1 -1
kernel/trace/trace.c
··· 10507 10507 10508 10508 /* Disable all the flags that were enabled coming in */ 10509 10509 for (i = 0; i < TRACE_FLAGS_MAX_SIZE; i++) { 10510 - if ((1 << i) & ZEROED_TRACE_FLAGS) 10510 + if ((1ULL << i) & ZEROED_TRACE_FLAGS) 10511 10511 set_tracer_flag(tr, 1ULL << i, 0); 10512 10512 } 10513 10513
+2
kernel/trace/trace_events.c
··· 700 700 701 701 #ifdef CONFIG_PERF_EVENTS 702 702 case TRACE_REG_PERF_REGISTER: 703 + if (!call->class->perf_probe) 704 + return -ENODEV; 703 705 return tracepoint_probe_register(call->tp, 704 706 call->class->perf_probe, 705 707 call);