| #
c2c0b0cf |
| 06-Apr-2024 |
mpi <mpi@openbsd.org> |
Remove (unused) in-kernel event filtering, it's currently dead code.
All events are currently exported to userland in order to support complex filters. If this becomes a bottleneck it should be pos
Remove (unused) in-kernel event filtering, it's currently dead code.
All events are currently exported to userland in order to support complex filters. If this becomes a bottleneck it should be possible to translate (some) user-land filters to in-kernel fitlers.
Prodded by a diff from Christian Ludwig to also trace the tracing program.
ok claudio@
show more ...
|
| #
68cc3983 |
| 13-Apr-2023 |
jsg <jsg@openbsd.org> |
remove duplicate includes ok deraadt@ miod@ krw@
|
| #
f231ff59 |
| 09-Dec-2021 |
guenther <guenther@openbsd.org> |
We only have one syscall table: inline sysent/SYS_MAXSYSCALL and SYS_syscall as the nosys() function into the MD syscall entry routines and the SYSCALL_DEBUG support. Adjust alpha's syscall check to
We only have one syscall table: inline sysent/SYS_MAXSYSCALL and SYS_syscall as the nosys() function into the MD syscall entry routines and the SYSCALL_DEBUG support. Adjust alpha's syscall check to match the other archs. Also, make sysent const to get it into .rodata.
With that, 'struct emul' is unused: delete it and all its references
ok millert@
show more ...
|
| #
840df46f |
| 03-Sep-2021 |
jasper <jasper@openbsd.org> |
add kprobes provider for dt
this allows us to dynamically trace function boundaries with btrace by patching prologues and epilogues with a breakpoint upon which the handler records the data, sends i
add kprobes provider for dt
this allows us to dynamically trace function boundaries with btrace by patching prologues and epilogues with a breakpoint upon which the handler records the data, sends it back to userland for btrace to consume. currently it's hidden behind DDBPROF, and there is still a lot to cleanup and improve, but basic scripts that observe return codes from a probed function work.
from Tom Rollet, with various changes by me feedback and ok mpi@
show more ...
|
| #
63d5bccf |
| 02-Sep-2021 |
jasper <jasper@openbsd.org> |
rename struct dt_evt fields to make it clear this isn't only used for tracing syscalls and adjust btrace(8) accordingly. extracted from a larger diff by Tom Rollet.
ok mpi@
|
| #
04f80c81 |
| 04-Jul-2020 |
mpi <mpi@openbsd.org> |
Do the same as libc, store "-1" in the return value when a syscall failed.
Simplify the logic by always exporting the return value and errno in the syscall profiler.
|
| #
23829576 |
| 28-Mar-2020 |
mpi <mpi@openbsd.org> |
Export the number of arguments exposed by a probe to userland.
Also make the syscall provider exports the number of syscall arguments. This will allow for stricter checks when parsing `argN' and fu
Export the number of arguments exposed by a probe to userland.
Also make the syscall provider exports the number of syscall arguments. This will allow for stricter checks when parsing `argN' and future `args->name'.
This is an ABI change, don't forget to keep btrace(8) and your kernel in sync.
show more ...
|
| #
ecfa01e0 |
| 25-Mar-2020 |
mpi <mpi@openbsd.org> |
Introduce stacktrace_save_at() and make use of it in dt(4).
This variant of stacktrace_save() takes an aditionnal argument to skip an arbitrary number of frame. This allows to skip recording frames
Introduce stacktrace_save_at() and make use of it in dt(4).
This variant of stacktrace_save() takes an aditionnal argument to skip an arbitrary number of frame. This allows to skip recording frames used to execute the profiling code and produces outputs easier to understand.
Inputs from and ok visa@
show more ...
|
| #
91b2ecf6 |
| 21-Jan-2020 |
mpi <mpi@openbsd.org> |
Import dt(4) a driver and framework for Dynamic Profiling.
The design is fairly simple: events, in the form of descriptors on a ring, are being produced in any kernel context and being consumed by a
Import dt(4) a driver and framework for Dynamic Profiling.
The design is fairly simple: events, in the form of descriptors on a ring, are being produced in any kernel context and being consumed by a userland process reading /dev/dt.
Code and hooks are all guarded under '#if NDT > 0' so this commit shouldn't introduce any change as long as dt(4) is disable in GENERIC.
ok kettenis@, visa@, jasper@, deraadt@
show more ...
|