Skip to content

Commit

Permalink
reflected review results
Browse files Browse the repository at this point in the history
  • Loading branch information
miyakoshi-dev committed Dec 12, 2024
1 parent 5867b2b commit 2e0b1ed
Show file tree
Hide file tree
Showing 9 changed files with 213 additions and 109 deletions.
6 changes: 2 additions & 4 deletions src/caret_analyze/infra/lttng/lttng.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,8 +226,6 @@ def __len__(self) -> int:

@staticmethod
def _to_event(msg: Any) -> dict[str, Any]:
if msg.event.name == 'ros2_caret:dds_write':
print(msg.event.name)
event: dict[str, Any] = {}
event[LttngEventFilter.NAME] = msg.event.name
event[LttngEventFilter.TIMESTAMP] = msg.default_clock_snapshot.ns_from_origin
Expand Down Expand Up @@ -342,12 +340,12 @@ class Lttng(InfraBase):
'ros2:rcl_lifecycle_state_machine_init',
'ros2_caret:caret_init',
'ros2_caret:rmw_implementation',
'ros2_caret:executor_entity_collector_to_executor',
'ros2_caret:construct_executor',
'ros2_caret:construct_static_executor',
'ros2_caret:callback_group_to_executor_entity_collector',
'ros2_caret:add_callback_group',
'ros2_caret:add_callback_group_static_executor',
'ros2_caret:executor_entity_collector_to_executor',
'ros2_caret:callback_group_to_executor_entity_collector',
'ros2_caret:callback_group_add_timer',
'ros2_caret:callback_group_add_subscription',
'ros2_caret:callback_group_add_service',
Expand Down
9 changes: 5 additions & 4 deletions src/caret_analyze/infra/lttng/lttng_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
from functools import cached_property, lru_cache
from logging import getLogger, WARN

import os

import pandas as pd

from .ros2_tracing.data_model import Ros2DataModel
Expand Down Expand Up @@ -1265,8 +1263,11 @@ def _build_cbg(
) -> TracePointData:
columns = ['callback_group_id', 'callback_group_addr', 'group_type_name', 'executor_addr']

ros_version = os.environ['ROS_DISTRO']
if ros_version[0] >= 'jazzy'[0]:
if len(data.caret_init.df) != 0:
distribution = data.caret_init.df['distribution']
else:
distribution = 'NOTFOUND'
if distribution[0] >= 'jazzy'[0]:
callback_groups = data.callback_group_to_executor_entity_collector.clone()
callback_groups.reset_index()

Expand Down
3 changes: 0 additions & 3 deletions src/caret_analyze/infra/lttng/ros2_tracing/data_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ def __init__(self) -> None:
columns=[
ColumnValue('tid'),
ColumnValue('dds_write_timestamp'),
ColumnValue('rmw_publisher_handle'),
ColumnValue('message'),
]
)
Expand Down Expand Up @@ -536,13 +535,11 @@ def add_dds_write_instance(
self,
tid: int,
timestamp: int,
rmw_publisher_handle: int,
message: int,
) -> None:
record = {
'tid': tid,
'dds_write_timestamp': timestamp,
'rmw_publisher_handle': rmw_publisher_handle,
'message': message,
}
self.dds_write_instances.append(record)
Expand Down
32 changes: 7 additions & 25 deletions src/caret_analyze/infra/lttng/ros2_tracing/processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@

from collections import defaultdict

import os

from typing import Any, TYPE_CHECKING

import bt2
Expand Down Expand Up @@ -886,13 +884,9 @@ def _handle_dds_write(
tid = get_field(event, '_vtid')
# memo: "timestamp" is not read because alternative data is used
# memo: "timestamp" and "_timestamp" are different
# memo: "rmw_publisher_handle" is not used so will not be loaded

ros_version = os.environ['ROS_DISTRO']
if ros_version[0] >= 'jazzy'[0]:
rmw_publisher_handle = get_field(event, 'rmw_publisher_handle')
self.data.add_dds_write_instance(tid, timestamp, rmw_publisher_handle, message)
else:
self.data.add_dds_write_instance(tid, timestamp, 0, message)
self.data.add_dds_write_instance(tid, timestamp, message)

def _handle_dds_bind_addr_to_stamp(
self,
Expand Down Expand Up @@ -954,7 +948,7 @@ def _handle_executor_entity_collector_to_executor(
executor_addr = get_field(event, 'executor_addr')
executor_entities_collector_addr = get_field(event, 'executor_entities_collector_addr')

executor_addr = self._remapper.executor_addr_remapper.register_and_get_object_id(
executor_addr = self._remapper.executor_addr_remapper.get_nearest_object_id(
executor_addr, event)
executor_entities_collector_addr = \
self._remapper.executor_entities_collector_addr_remapper.register_and_get_object_id(
Expand All @@ -970,14 +964,8 @@ def _handle_construct_executor(
executor_addr = get_field(event, 'executor_addr')
executor_type_name = get_field(event, 'executor_type_name')

ros_version = os.environ['ROS_DISTRO']

if ros_version[0] >= 'jazzy'[0]:
executor_addr = \
self._remapper.executor_addr_remapper.get_nearest_object_id(executor_addr, event)
else:
executor_addr = self._remapper.executor_addr_remapper.register_and_get_object_id(
executor_addr, event)
executor_addr = self._remapper.executor_addr_remapper.register_and_get_object_id(
executor_addr, event)

self.data.add_executor(executor_addr, timestamp, executor_type_name)

Expand All @@ -990,14 +978,8 @@ def _handle_construct_static_executor(
collector_addr = get_field(event, 'entities_collector_addr')
executor_type_name = get_field(event, 'executor_type_name')

ros_version = os.environ['ROS_DISTRO']

if ros_version[0] >= 'jazzy'[0]:
executor_addr = \
self._remapper.executor_addr_remapper.get_nearest_object_id(executor_addr, event)
else:
executor_addr = self._remapper.executor_addr_remapper.register_and_get_object_id(
executor_addr, event)
executor_addr = self._remapper.executor_addr_remapper.register_and_get_object_id(
executor_addr, event)

collector_addr = \
self._remapper.entities_collector_addr_remapper.register_and_get_object_id(
Expand Down
2 changes: 1 addition & 1 deletion src/test/infra/lttng/ros2_tracing/test_ros2_tracing.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def test_add_tracepoints(self):
data.add_rclcpp_intra_publish_instance(0, 0, 0, 0, 0)
data.add_rclcpp_publish_instance(0, 0, 0, 0, 0)
data.add_rcl_publish_instance(0, 0, 0, 0)
data.add_dds_write_instance(0, 0, 0, 0)
data.add_dds_write_instance(0, 0, 0)
data.add_dds_bind_addr_to_addr(0, 0, 0)
data.add_message_construct_instance(0, 0, 0)
data.add_dispatch_subscription_callback_instance(0, 0, 0, 0, 0)
Expand Down
14 changes: 7 additions & 7 deletions src/test/infra/lttng/test_event_counter.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def test_build_count_df_increment_count(self):
data.add_rclcpp_ring_buffer_dequeue_instance(0, 0, 0, 0, 0)
data.add_rclcpp_publish_instance(0, 0, 0, 0, 0)
data.add_rcl_publish_instance(0, 0, 0, 0)
data.add_dds_write_instance(0, 0, 0, 0)
data.add_dds_write_instance(0, 0, 0)
data.add_dds_bind_addr_to_addr(0, 0, 0)
data.add_dds_bind_addr_to_stamp(0, 0, 0, 0)
data.add_on_data_available_instance(0, 0)
Expand Down Expand Up @@ -113,7 +113,7 @@ def test_validation_without_dds_tracepoint(
):
data = Ros2DataModel()
data.add_dispatch_subscription_callback_instance(0, 0, 0, 0, 0) # pass rclcpp-check
data.add_dds_write_instance(0, 0, 0, 0) # pass LD_PRELOAD check
data.add_dds_write_instance(0, 0, 0) # pass LD_PRELOAD check
data.finalize()

logger = getLogger('caret_analyze.infra.lttng.event_counter')
Expand All @@ -136,7 +136,7 @@ def test_validation_without_forked_rclcpp(
has_rmw_take,
):
data = Ros2DataModel()
data.add_dds_write_instance(0, 0, 0, 0) # pass LD_PRELOAD check
data.add_dds_write_instance(0, 0, 0) # pass LD_PRELOAD check
data.add_dds_bind_addr_to_stamp(0, 0, 0, 0) # pass dds layer check
if has_rmw_take:
data.add_rmw_take_instance(0, 0, 0, 0, 0) # pass rmw_take check
Expand Down Expand Up @@ -176,7 +176,7 @@ def test_check_original_rclcpp_publish(
):
data = Ros2DataModel()
# pass rclcpp-check
data.add_dds_write_instance(0, 0, 0, 0) # pass LD_PRELOAD check
data.add_dds_write_instance(0, 0, 0) # pass LD_PRELOAD check
data.add_dds_bind_addr_to_stamp(0, 0, 0, 0) # pass dds layer check
data.add_rmw_take_instance(0, 0, 0, 0, 0) # pass rmw_take check
if use_caret_rclcpp:
Expand Down Expand Up @@ -205,7 +205,7 @@ def test_distributions(

distribution = 'distribution'
data.add_caret_init(0, 0, distribution)
data.add_dds_write_instance(0, 0, 0, 0) # pass LD_PRELOAD check
data.add_dds_write_instance(0, 0, 0) # pass LD_PRELOAD check
data.add_dds_bind_addr_to_stamp(0, 0, 0, 0) # pass dds layer check
data.finalize()

Expand All @@ -223,7 +223,7 @@ def test_validation_with_distribution(
):
data = Ros2DataModel()
data.add_caret_init(0, 0, distribution)
data.add_dds_write_instance(0, 0, 0, 0) # pass LD_PRELOAD check
data.add_dds_write_instance(0, 0, 0) # pass LD_PRELOAD check
data.add_dds_bind_addr_to_stamp(0, 0, 0, 0) # pass dds layer check
data.finalize()

Expand All @@ -243,7 +243,7 @@ def test_validation_valid_case(
):
data = Ros2DataModel()
data.add_dispatch_subscription_callback_instance(0, 0, 0, 0, 0) # pass rclcpp-check
data.add_dds_write_instance(0, 0, 0, 0) # pass LD_PRELOAD check
data.add_dds_write_instance(0, 0, 0) # pass LD_PRELOAD check
data.add_dds_bind_addr_to_stamp(0, 0, 0, 0) # pass dds layer check
data.finalize()

Expand Down
10 changes: 5 additions & 5 deletions src/test/infra/lttng/test_latency_definitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,7 @@ def test_single_publisher_without_tilde(
data.add_rclcpp_publish_instance(
tid, 1, 0, message_addr, message_timestamp)
data.add_rcl_publish_instance(tid, 2, pub_handle, message_addr)
data.add_dds_write_instance(tid, 3, 0, message_addr)
data.add_dds_write_instance(tid, 3, message_addr)
data.add_dds_bind_addr_to_stamp(
tid, 4, message_addr, source_timestamp)
data.finalize()
Expand Down Expand Up @@ -686,7 +686,7 @@ def test_single_publisher_with_tilde(
data.add_rclcpp_publish_instance(
tid, 2, 0, message_addr, message_timestamp)
data.add_rcl_publish_instance(tid, 3, pub_handle, message_addr)
data.add_dds_write_instance(tid, 4, 0, message_addr)
data.add_dds_write_instance(tid, 4, message_addr)
data.add_dds_bind_addr_to_stamp(
tid, 5, message_addr, source_timestamp)
data.finalize()
Expand Down Expand Up @@ -750,7 +750,7 @@ def test_generic_publisher(
message_addr = 9
data.add_rclcpp_publish_instance(tid, 2, pub_handle, message_addr, message_timestamp)
data.add_rcl_publish_instance(tid, 3, pub_handle, message_addr)
data.add_dds_write_instance(tid, 4, 0, message_addr)
data.add_dds_write_instance(tid, 4, message_addr)
data.add_dds_bind_addr_to_stamp(tid, 6, message_addr, source_timestamp)

# generic_publisher
Expand Down Expand Up @@ -1287,7 +1287,7 @@ def test_tilde(
data.add_rclcpp_publish_instance(
tid, 4, pub_handle, message_addr, message_timestamp)
data.add_rcl_publish_instance(tid, 5, pub_handle, message_addr)
data.add_dds_write_instance(tid, 6, 0, message_addr)
data.add_dds_write_instance(tid, 6, message_addr)
data.add_dds_bind_addr_to_stamp(tid, 7, message_addr, source_timestamp)
data.finalize()

Expand Down Expand Up @@ -1420,7 +1420,7 @@ def test_inter_proc(
data.add_rclcpp_publish_instance(
tid, 1, pub_handle, send_message, message_stamp)
data.add_rcl_publish_instance(tid, 2, pub_handle, send_message)
data.add_dds_write_instance(tid, 3, 0, send_message)
data.add_dds_write_instance(tid, 3, send_message)
data.add_dds_bind_addr_to_stamp(
tid, 4, send_message, source_stamp)
if has_dispatch:
Expand Down
Loading

0 comments on commit 2e0b1ed

Please sign in to comment.