Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
vlib: fix handoff queue sequencing bug
[vpp.git]
/
src
/
vlib
/
buffer_node.h
diff --git
a/src/vlib/buffer_node.h
b/src/vlib/buffer_node.h
index
5ded506
..
96b50ae
100644
(file)
--- a/
src/vlib/buffer_node.h
+++ b/
src/vlib/buffer_node.h
@@
-517,7
+517,6
@@
vlib_buffer_enqueue_to_thread (vlib_main_t * vm, u32 frame_queue_index,
n_drop++;
goto next;
}
n_drop++;
goto next;
}
- vlib_mains[next_thread_index]->check_frame_queues = 1;
if (hf)
hf->n_vectors = VLIB_FRAME_SIZE - n_left_to_next_thread;
if (hf)
hf->n_vectors = VLIB_FRAME_SIZE - n_left_to_next_thread;
@@
-539,6
+538,7
@@
vlib_buffer_enqueue_to_thread (vlib_main_t * vm, u32 frame_queue_index,
{
hf->n_vectors = VLIB_FRAME_SIZE;
vlib_put_frame_queue_elt (hf);
{
hf->n_vectors = VLIB_FRAME_SIZE;
vlib_put_frame_queue_elt (hf);
+ vlib_mains[current_thread_index]->check_frame_queues = 1;
current_thread_index = ~0;
ptd->handoff_queue_elt_by_thread_index[next_thread_index] = 0;
hf = 0;
current_thread_index = ~0;
ptd->handoff_queue_elt_by_thread_index[next_thread_index] = 0;
hf = 0;
@@
-567,6
+567,7
@@
vlib_buffer_enqueue_to_thread (vlib_main_t * vm, u32 frame_queue_index,
if (1 || hf->n_vectors == hf->last_n_vectors)
{
vlib_put_frame_queue_elt (hf);
if (1 || hf->n_vectors == hf->last_n_vectors)
{
vlib_put_frame_queue_elt (hf);
+ vlib_mains[i]->check_frame_queues = 1;
ptd->handoff_queue_elt_by_thread_index[i] = 0;
}
else
ptd->handoff_queue_elt_by_thread_index[i] = 0;
}
else