| #
df7b9055 |
| 23-Sep-2026 |
John Baldwin <jhb@FreeBSD.org> |
dtrace: Remove bogus Makefile.inc
This was added in the initial import of dtrace and overrides the normal load/unload targets with a custom target that loads a hardcoded set of modules. Over time,
dtrace: Remove bogus Makefile.inc
This was added in the initial import of dtrace and overrides the normal load/unload targets with a custom target that loads a hardcoded set of modules. Over time, the set of modules has not been updated and is now incomplete. It's also not really useful compared to the default implementation of these targets used for loading or unloading an individual module being actively developed.
This functionality is also available via dtraceall.ko which is how users commonly load the full suite of dtrace modules.
Reviewed by: imp, markj Differential Revision: https://reviews.freebsd.org/D59821
show more ...
|
| #
6e32e8d7 |
| 04-Feb-2026 |
Mark Johnston <markj@FreeBSD.org> |
sdt: Enable on 32-bit powerpc and powerpc64le
Reviewed by: jhibbits, adrian MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D54814
|
| #
1e734f15 |
| 22-Jan-2025 |
Mark Johnston <markj@FreeBSD.org> |
dtrace: Build systrace_freebsd32 only if COMPAT_FREEBSD32 is configured
MFC after: 1 week Sponsored by: Innovate UK
|
| #
e9ac4169 |
| 15-Jul-2024 |
Warner Losh <imp@FreeBSD.org> |
Remove residual blank line at start of Makefile
This is a residual of the $FreeBSD$ removal.
MFC After: 3 days (though I'll just run the command on the branches) Sponsored by: Netflix
|
| #
ddf0ed09 |
| 19-Jun-2024 |
Mark Johnston <markj@FreeBSD.org> |
sdt: Implement SDT probes using hot-patching
The idea here is to avoid a memory access and conditional branch per probe site. Instead, the probe is represented by an "unreachable" unconditional fun
sdt: Implement SDT probes using hot-patching
The idea here is to avoid a memory access and conditional branch per probe site. Instead, the probe is represented by an "unreachable" unconditional function call. asm goto is used to store the address of the probe site (represented by a no-op sled) and the address of the function call into a tracepoint record. Each SDT probe carries a list of tracepoints.
When the probe is enabled, the no-op sled corresponding to each tracepoint is overwritten with a jmp to the corresponding label. The implementation uses smp_rendezvous() to park all other CPUs while the instruction is being overwritten, as this can't be done atomically in general. The compiler moves argument marshalling code and the sdt_probe() function call out-of-line, i.e., to the end of the function.
Per gallatin@ in D43504, this approach has less overhead when probes are disabled. To make the implementation a bit simpler, I removed support for probes with 7 arguments; nothing makes use of this except a regression test case. It could be re-added later if need be.
The approach taken in this patch enables some more improvements: 1. We can now automatically fill out the "function" field of SDT probe names. The SDT macros let the programmer specify the function and module names, but this is really a bug and shouldn't have been allowed. The intent was to be able to have the same probe in multiple functions and to let the user restrict which probes actually get enabled by specifying a function name or glob. 2. We can avoid branching on SDT_PROBES_ENABLED() by adding the ability to include blocks of code in the out-of-line path. For example:
if (SDT_PROBES_ENABLED()) { int reason = CLD_EXITED;
if (WCOREDUMP(signo)) reason = CLD_DUMPED; else if (WIFSIGNALED(signo)) reason = CLD_KILLED; SDT_PROBE1(proc, , , exit, reason); }
could be written
SDT_PROBE1_EXT(proc, , , exit, reason, int reason;
reason = CLD_EXITED; if (WCOREDUMP(signo)) reason = CLD_DUMPED; else if (WIFSIGNALED(signo)) reason = CLD_KILLED; );
In the future I would like to use this mechanism more generally, e.g., to remove branches and marshalling code used by hwpmc, and generally to make it easier to add new tracepoint consumers without having to add more conditional branches to hot code paths.
Reviewed by: Domagoj Stolfa, avg MFC after: 2 months Differential Revision: https://reviews.freebsd.org/D44483
show more ...
|
| #
031beb4e |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
| #
07864a8a |
| 19-Jul-2023 |
Christos Margiolis <christos@FreeBSD.org> |
kinst: port to arm64
Reviewed by: markj Approved by: markj (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40337
|
| #
2d7bb03a |
| 04-Jul-2023 |
Christos Margiolis <christos@FreeBSD.org> |
kinst: port to riscv
Reviewed by: markj Approved by: markj (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39884
|
| #
10eed6bc |
| 11-Jan-2023 |
Mitchell Horne <mhorne@FreeBSD.org> |
dtrace: include fbt module unconditionally
It is supported on all platforms.
Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37658
|
| #
fe4a5593 |
| 30-Oct-2022 |
Justin Hibbits <jhibbits@FreeBSD.org> |
dtrace: Add pid provider to the build for powerpc
The fasttrap pid provider has been in place for a long time, but stopped getting built by efe88d92da in preparation for 64-bit atomics. 32-bit emul
dtrace: Add pid provider to the build for powerpc
The fasttrap pid provider has been in place for a long time, but stopped getting built by efe88d92da in preparation for 64-bit atomics. 32-bit emulation of 64-bit atomics was added in 9aafc7c05.
MFC after: 3 weeks
show more ...
|
| #
f0bc4ed1 |
| 11-Oct-2022 |
Christos Margiolis <christos@FreeBSD.org> |
kinst: Initial revision
This is a new DTrace provider which allows arbitrary kernel instructions to be traced. Currently it is implemented only for amd64.
kinst probes are created on demand by lib
kinst: Initial revision
This is a new DTrace provider which allows arbitrary kernel instructions to be traced. Currently it is implemented only for amd64.
kinst probes are created on demand by libdtrace, and there is a probe for each kernel instruction. Probes are named kinst:<module>:<function>:<offset>, where "offset" is the offset of the target instruction relative to the beginning of the function. Omitting "offset" causes all instructions in the function to be traced.
kinst works similarly to FBT in that it places a breakpoint on the target instruction and hooks into the kernel breakpoint handler. Because kinst has to be able to trace arbitrary instructions, it does not emulate most of them in software but rather causes the traced thread to execute a copy of the instruction before returning to the original code.
The provider is quite low-level and as-is will be useful mostly only to kernel developers. However, it provides a great deal of visibility into kernel code execution and could be used as a building block for higher-level tooling which can in some sense translate between C sources and generated machine code. In particular, the "regs" variable recently added to D allows the CPU's register file to be accessed from kinst probes.
kinst is experimental and should not be used on production systems for now.
In collaboration with: markj Sponsored by: Google, Inc. (GSoC 2022) MFC after: 3 months Differential Revision: https://reviews.freebsd.org/D36851
show more ...
|
| #
c66fd95c |
| 31-Dec-2021 |
Warner Losh <imp@FreeBSD.org> |
mips: Remove dtrace build support
Sponsored by: Netflix
|
| #
efe88d92 |
| 21-Feb-2019 |
Mark Johnston <markj@FreeBSD.org> |
Disconnect fasttrap from the 32-bit powerpc build.
An upcoming bug fix requires 64-bit atomics, which aren't implemented on powerpc. The powerpc port of fasttrap is incomplete anyway and doesn't ge
Disconnect fasttrap from the 32-bit powerpc build.
An upcoming bug fix requires 64-bit atomics, which aren't implemented on powerpc. The powerpc port of fasttrap is incomplete anyway and doesn't get loaded by dtraceall.ko on powerpc because of a missing dependency; it's presumed that it's effectively unused.
Discussed with: jhibbits MFC after: 2 weeks
show more ...
|
| #
05f08f29 |
| 11-Jan-2018 |
Michael Tuexen <tuexen@FreeBSD.org> |
Build systrace_freebsd32 on arm64.
Since r326501 which added COMPAT_FREEBSD32 to the GENERIC config for arm64, we need to build systrace_freebsd32, since dtraceall depends on it.
Reviewed by: ed,
Build systrace_freebsd32 on arm64.
Since r326501 which added COMPAT_FREEBSD32 to the GENERIC config for arm64, we need to build systrace_freebsd32, since dtraceall depends on it.
Reviewed by: ed, gnn Differential Revision: https://reviews.freebsd.org/D13670
show more ...
|
| #
a8273e43 |
| 06-Sep-2017 |
Kurt Lidl <lidl@FreeBSD.org> |
Enable dtrace support for mips64 and the ERL kernel config
Turn on the required options in the ERL config file, and ensure that the fbt module is listed as a dependency for mips in the modules/dtrac
Enable dtrace support for mips64 and the ERL kernel config
Turn on the required options in the ERL config file, and ensure that the fbt module is listed as a dependency for mips in the modules/dtrace/dtraceall/dtraceall.c file.
PR: 220346 Reviewed by: gnn, markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D12227
show more ...
|
| #
1811d6bf |
| 29-Mar-2017 |
Robert Watson <rwatson@FreeBSD.org> |
Add an experimental DTrace audit provider, which allows users of DTrace to instrument security event auditing rather than relying on conventional BSM trail files or audit pipes:
- Add a set of per-e
Add an experimental DTrace audit provider, which allows users of DTrace to instrument security event auditing rather than relying on conventional BSM trail files or audit pipes:
- Add a set of per-event 'commit' probes, which provide access to particular auditable events at the time of commit in system-call return. These probes gain access to audit data via the in-kernel audit_record data structure, providing convenient access to system-call arguments and return values in a single probe.
- Add a set of per-event 'bsm' probes, which provide access to particular auditable events at the time of BSM record generation in the audit worker thread. These probes have access to the in-kernel audit_record data structure and BSM representation as would be written to a trail file or audit pipe -- i.e., asynchronously in the audit worker thread.
DTrace probe arguments consist of the name of the audit event (to support future mechanisms of instrumenting multiple events via a single probe -- e.g., using classes), a pointer to the in-kernel audit record, and an optional pointer to the BSM data and its length. For human convenience, upper-case audit event names (AUE_...) are converted to lower case in DTrace.
DTrace scripts can now cause additional audit-based data to be collected on system calls, and inspect internal and BSM representations of the data. They do not affect data captured in the audit trail or audit pipes configured in the system. auditd(8) must be configured and running in order to provide a database of event information, as well as other audit configuration parameters (e.g., to capture command-line arguments or environmental variables) for the provider to operate.
Reviewed by: gnn, jonathan, markj Sponsored by: DARPA, AFRL MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D10149
show more ...
|
| #
92bf0e5e |
| 29-Jul-2016 |
Ruslan Bukin <br@FreeBSD.org> |
Include FBT to modules build on RISC-V.
|
| #
2f99bcce |
| 22-Oct-2015 |
John Baldwin <jhb@FreeBSD.org> |
Rename remaining linux32 symbols such as linux_sysent[] and linux_syscallnames[] from linux_* to linux32_* to avoid conflicts with linux64.ko. While here, add support for linux64 binaries to systrac
Rename remaining linux32 symbols such as linux_sysent[] and linux_syscallnames[] from linux_* to linux32_* to avoid conflicts with linux64.ko. While here, add support for linux64 binaries to systrace. - Update NOPROTO entries in amd64/linux/syscalls.master to match the main table to fix systrace build. - Add a special case for union l_semun arguments to the systrace generation. - The systrace_linux32 module now only builds the systrace_linux32.ko. module on amd64. - Add a new systrace_linux module that builds on both i386 and amd64. For i386 it builds the existing systrace_linux.ko. For amd64 it builds a systrace_linux.ko for 64-bit binaries.
Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D3954
show more ...
|
| #
32cd0147 |
| 20-Jul-2015 |
Mark Johnston <markj@FreeBSD.org> |
Implement the lockstat provider using SDT(9) instead of the custom provider in lockstat.ko. This means that lockstat probes now have typed arguments and will utilize SDT probe hot-patching support wh
Implement the lockstat provider using SDT(9) instead of the custom provider in lockstat.ko. This means that lockstat probes now have typed arguments and will utilize SDT probe hot-patching support when it arrives.
Reviewed by: gnn Differential Revision: https://reviews.freebsd.org/D2993
show more ...
|
| #
b78ee15e |
| 01-Jul-2015 |
Ruslan Bukin <br@FreeBSD.org> |
First cut of DTrace for AArch64.
Reviewed by: andrew, emaste Sponsored by: ARM Limited Differential Revision: https://reviews.freebsd.org/D2738
|
| #
fcb56067 |
| 10-Feb-2015 |
George V. Neville-Neil <gnn@FreeBSD.org> |
Initial version of DTrace on ARM32.
Submitted by: Howard Su based on work by Oleksandr Tymoshenko Reviewed by: ian, andrew, rpaulo, markj
|
| #
c15882f0 |
| 23-Dec-2014 |
Rick Macklem <rmacklem@FreeBSD.org> |
Remove the old NFS client and server from head, which means that the NFSCLIENT and NFSSERVER kernel options will no longer work. This commit only removes the kernel components. Removal of unused code
Remove the old NFS client and server from head, which means that the NFSCLIENT and NFSSERVER kernel options will no longer work. This commit only removes the kernel components. Removal of unused code in the user utilities will be done later. This commit does not include an addition to UPDATING, but that will be committed in a few minutes.
Discussed on: freebsd-fs
show more ...
|
| #
009a1962 |
| 05-Aug-2014 |
Warner Losh <imp@FreeBSD.org> |
Remove unnecessary inclusions of bsd.own.mk.
|
| #
2e1ae0b3 |
| 24-Oct-2013 |
Mark Johnston <markj@FreeBSD.org> |
Redefine the io provider using the SDT(9) macros instead of doing everything manually. This change has no functional impact.
Discussed with: gnn
|
| #
30b318b9 |
| 15-Oct-2013 |
Justin Hibbits <jhibbits@FreeBSD.org> |
Add fasttrap for PowerPC. This is the last piece of the dtrace/ppc puzzle. It's incomplete, it doesn't contain full instruction emulation, but it should be sufficient for most cases.
MFC after: 1 m
Add fasttrap for PowerPC. This is the last piece of the dtrace/ppc puzzle. It's incomplete, it doesn't contain full instruction emulation, but it should be sufficient for most cases.
MFC after: 1 month
show more ...
|