summaryrefslogtreecommitdiffstats
path: root/src/vnet/devices
diff options
context:
space:
mode:
authorBenoît Ganne <bganne@cisco.com>2021-03-04 14:31:03 +0100
committerDamjan Marion <dmarion@me.com>2021-05-01 11:42:37 +0000
commitf89bbbe300dad7bc479db535e7822199f98aca30 (patch)
tree1163eeac010375a962fcda8c2e0c7a7046161bf1 /src/vnet/devices
parentc8983241b9d93d2c3b60b0705efbc3cdee54c534 (diff)
vlib: refactor trajectory trace debug feature
trajectory trace has been broken for a while because we used to save the buffer trajectory in a vector pointed to in opaque2. This does not work well when opaque2 is copied (eg. because of a clone) as 2 buffers end up sharing the same vector. This dedicates a full cacheline in the buffer metadata instead when trajectory is compiled in. No dynamic allocation, no sharing, no tears. Type: refactor Change-Id: I6a028ca1b48d38f393a36979e5e452c2dd48ad3f Signed-off-by: Benoît Ganne <bganne@cisco.com>
Diffstat (limited to 'src/vnet/devices')
-rw-r--r--src/vnet/devices/af_packet/node.c1
-rw-r--r--src/vnet/devices/virtio/node.c2
-rw-r--r--src/vnet/devices/virtio/vhost_user_input.c4
3 files changed, 0 insertions, 7 deletions
diff --git a/src/vnet/devices/af_packet/node.c b/src/vnet/devices/af_packet/node.c
index 9f1782e2d13..16cd69a52ce 100644
--- a/src/vnet/devices/af_packet/node.c
+++ b/src/vnet/devices/af_packet/node.c
@@ -332,7 +332,6 @@ af_packet_device_input_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
}
/* trace */
- VLIB_BUFFER_TRACE_TRAJECTORY_INIT (first_b0);
if (PREDICT_FALSE
(n_trace > 0 && vlib_trace_buffer (vm, node, next0, first_b0,
/* follow_chain */ 0)))
diff --git a/src/vnet/devices/virtio/node.c b/src/vnet/devices/virtio/node.c
index 98df322ea15..df8c0fa9a64 100644
--- a/src/vnet/devices/virtio/node.c
+++ b/src/vnet/devices/virtio/node.c
@@ -522,8 +522,6 @@ virtio_device_input_gso_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
}
/* trace */
- VLIB_BUFFER_TRACE_TRAJECTORY_INIT (b0);
-
if (PREDICT_FALSE (n_trace > 0 && vlib_trace_buffer (vm, node, next0, b0, /* follow_chain */
1)))
{
diff --git a/src/vnet/devices/virtio/vhost_user_input.c b/src/vnet/devices/virtio/vhost_user_input.c
index 739125bbcfe..1636bd8c4a9 100644
--- a/src/vnet/devices/virtio/vhost_user_input.c
+++ b/src/vnet/devices/virtio/vhost_user_input.c
@@ -686,8 +686,6 @@ vhost_user_if_input (vlib_main_t *vm, vhost_user_main_t *vum,
last_avail_idx++;
last_used_idx++;
- VLIB_BUFFER_TRACE_TRAJECTORY_INIT (b_head);
-
vnet_buffer (b_head)->sw_if_index[VLIB_RX] = vui->sw_if_index;
vnet_buffer (b_head)->sw_if_index[VLIB_TX] = (u32) ~ 0;
b_head->error = 0;
@@ -1318,8 +1316,6 @@ vhost_user_if_input_packed (vlib_main_t *vm, vhost_user_main_t *vum,
b_head->total_length_not_including_first_buffer -=
b_head->current_length;
- VLIB_BUFFER_TRACE_TRAJECTORY_INIT (b_head);
-
vnet_buffer (b_head)->sw_if_index[VLIB_RX] = vui->sw_if_index;
vnet_buffer (b_head)->sw_if_index[VLIB_TX] = ~0;
b_head->error = 0;