-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Flip ros2_tracing guide to building without instrumentation #3404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flip ros2_tracing guide to building without instrumentation #3404
Conversation
fd36f3f to
59e12f4
Compare
59e12f4 to
680a9d4
Compare
| Tracing instrumentation is included in the ROS 2 source code, and Linux installations of ROS 2 include the LTTng tracer as a dependency. | ||
| Therefore, ROS 2 can be traced out-of-the-box on Linux. | ||
|
|
||
| However, ROS 2 can be built from source to remove the tracepoints or completely remove the instrumentation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@christophebedard just out of curiosity. some people (including us) would do that because of performance overhead for tracing, right? In that case, do you happen to have some data how much overhead it possibly produces? I believe that overhead would be really small that we cannot even see or care most likely when it is not enabled?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, if you don't enable the tracepoints at runtime (i.e., if you don't do anything), the overhead is actually almost negligible. See one of the paragraphs talking about this here: ros2/ros2#1177
Even if the overhead is negligible, I know some people want to get rid of it + remove the dependency on LTTng if they don't actually need it, so this option is available.
Signed-off-by: Christophe Bedard <[email protected]>
680a9d4 to
ae876bd
Compare
Part of ros2/ros2#1177
Requires ros2/ros2_tracing#31
Since tracepoints are currently not included in a normal ROS 2 installation, #2877 added a guide that shows how to build ROS 2 to get the tracepoints.
ros2/ros2#1177 aims to include tracing instrumentation and the LTTng tracer by default in Linux installations of ROS 2. Therefore, this PR flips the existing guide into one that shows how to build ROS 2 without the instrumentation and/or tracepoints. See ros2/ros2_tracing#31.
Note: this only applies to Rolling & Iron (and later distros), so this should not be backported to previous distros.