Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a44f190

Browse files
committed
doc: Add rawfbt provider documentation
Signed-off-by: Eugene Loh <eugene.loh@oracle.com> Reviewed-by: Kris Van Hees <kris.van.hees@oracle.com>
1 parent 4dc5704 commit a44f190

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

‎doc/userguide/index.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,10 @@
241241
- [profile Probe Arguments](reference/dtrace_providers_profile.md#dt_ref_profargs_prov)
242242
- [profile Probe Creation](reference/dtrace_providers_profile.md#dt_ref_profprobecreate_prov)
243243
- [profile Stability](reference/dtrace_providers_profile.md#dt_ref_profstab_prov)
244+
- [Raw FBT Provider](reference/dtrace_providers_rawfbt.md)
245+
- [rawfbt Probes](reference/dtrace_providers_rawfbt.md#dt_ref_rawfbtprobes_prov)
246+
- [rawfbt Probe Arguments](reference/dtrace_providers_rawfbt.md#dt_ref_rawfbtargs_prov)
247+
- [rawfbt Stability](reference/dtrace_providers_rawfbt.md#dt_ref_rawfbtstab_prov)
244248
- [Rawtp Provider](reference/dtrace_providers_rawtp.md#dt_ref_rawtp_prov)
245249
- [rawtp Stability](reference/dtrace_providers_rawtp.md#dt_ref_rawtpstab_prov)
246250
- [Sched Provider](reference/dtrace_providers_sched.md#dt_ref_sched_prov)

‎doc/userguide/reference/dtrace_providers.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ The `pid` provider traces a user process, both function `entry` and `return`, an
2121
The `proc` provider makes available the probes that pertain to the following activities: process creation and termination, LWP creation and termination, execution of new program images, and signal sending and handling.
2222
- **[Profile Provider](../reference/dtrace_providers_profile.md)**
2323
The `profile` provider includes probes that are associated with an interrupt that fires at some regular, specified time interval.
24+
- **[Raw FBT Provider](../reference/dtrace_providers_rawfbt.md)**
25+
The `rawfbt` provider is a version of the `fbt` provider based on kprobes, allowing probing of synthetic function variants generated by the compiler.
2426
- **[Rawtp Provider](../reference/dtrace_providers_rawtp.md)**
2527
The `rawtp` provider gives DTrace users access to the raw tracepoints exposed by the kernel tracing system, including access to the untranslated arguments of the associated tracepoint events.
2628
- **[Sched Provider](../reference/dtrace_providers_sched.md)**
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Raw FBT Provider
2+
3+
The [fbt provider](../reference/dtrace_providers_fbt.md) consists of
4+
probes that are associated with the entry to and return from most functions
5+
in the Linux kernel. It does not support tracing synthetic functions,
6+
that is, compiler-generated functions with a . in their name.
7+
8+
In contrast, the `rawfbt` provider implements a variant of the FBT provider
9+
and always uses kprobes. It does allow tracing of synthetic functions, such
10+
as compiler-generated optimized variants of functions with . suffixes.
11+
12+
You can see the raw FBT probes on your system with:
13+
14+
```
15+
sudo dtrace -lP rawfbt
16+
```
17+
18+
As with the `fbt` provider, there could be tens of thousands of probes,
19+
and effective use requires knowledge of the kernel implementation.
20+
21+
**Parent topic:**[DTrace Provider Reference](../reference/dtrace_providers.md)
22+
23+
## rawfbt Probes <a id="dt_ref_rawfbtprobes_prov">
24+
25+
The module name of a `rawfbt` probe is `vmlinux` for built-in modules.
26+
The function name is the probed function.
27+
The probe name is either `entry` or `return`.
28+
29+
## rawfbt Probe Arguments <a id="dt_ref_rawfbtargs_prov">
30+
31+
The arguments to `entry` probes are the same as the arguments to the corresponding operating system kernel function.
32+
These arguments can be accessed as `int64_t` values by using the `arg0`, `arg1`, `arg2`, ... variables.
33+
34+
If the function has a return value, the return value is stored in `arg1` of the `return` probe.
35+
If a function doesn't have a return value, `arg1` isn't defined.
36+
37+
There are no typed `args[]` arguments for any `rawfbt` probes.
38+
39+
## rawfbt Stability <a id="dt_ref_rawfbtstab_prov">
40+
41+
The `rawfbt` provider uses DTrace's stability mechanism to describe its stabilities.
42+
These stability values are listed in the following table.
43+
44+
| Element | Name Stability | Data Stability | Dependency Class |
45+
| :--- | :--- | :--- | :--- |
46+
| Provider | Evolving | Evolving | Common |
47+
| Module | Private | Private | Unknown |
48+
| Function | Private | Private | ISA |
49+
| Name | Evolving | Evolving | Common |
50+
| Arguments | Private | Private | ISA |

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /