diff options
author | Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> | 2008-11-14 17:47:48 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-16 03:01:37 -0500 |
commit | 8fd88d159031bd238dad1d7186a2030b9f9349de (patch) | |
tree | f5ab2ddfd747ee0dd6e4e9555671ff6b7d0dca0b /Documentation | |
parent | 7e066fb870fcd1025ec3ba7bbde5d541094f4ce1 (diff) |
tracepoints: documentation fix for teardown
Impact: documentation update
Need a tracepoint_synchronize_unregister() before the end of exit()
to make sure every probe callers have exited the non preemptible
section and thus are not executing the probe code anymore.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/tracepoints.txt | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Documentation/tracepoints.txt b/Documentation/tracepoints.txt index e8ad47b437f3..93cd90e89cc1 100644 --- a/Documentation/tracepoints.txt +++ b/Documentation/tracepoints.txt | |||
@@ -70,10 +70,12 @@ Where : | |||
70 | Connecting a function (probe) to a tracepoint is done by providing a probe | 70 | Connecting a function (probe) to a tracepoint is done by providing a probe |
71 | (function to call) for the specific tracepoint through | 71 | (function to call) for the specific tracepoint through |
72 | register_trace_subsys_eventname(). Removing a probe is done through | 72 | register_trace_subsys_eventname(). Removing a probe is done through |
73 | unregister_trace_subsys_eventname(); it will remove the probe sure there is no | 73 | unregister_trace_subsys_eventname(); it will remove the probe. |
74 | caller left using the probe when it returns. Probe removal is preempt-safe | 74 | marker_synchronize_unregister() must be called before the end of the module exit |
75 | because preemption is disabled around the probe call. See the "Probe example" | 75 | function to make sure there is no caller left using the probe. This, and the |
76 | section below for a sample probe module. | 76 | fact that preemption is disabled around the probe call, make sure that probe |
77 | removal and module unload are safe. See the "Probe example" section below for a | ||
78 | sample probe module. | ||
77 | 79 | ||
78 | The tracepoint mechanism supports inserting multiple instances of the same | 80 | The tracepoint mechanism supports inserting multiple instances of the same |
79 | tracepoint, but a single definition must be made of a given tracepoint name over | 81 | tracepoint, but a single definition must be made of a given tracepoint name over |