Hi, In my plugin which implements a node receiving buffers from dpdk, I
have implemented a buffering structure in which I keep the buffer indices
and do not enqueue them immediately. This is done because I need some
processing to decide where to send these buffers and once decided I also
enqueue the buffered packets. This is done in a per flow manner in which
its session management is implemented within the plugin as well., At first
I was using an older style of vpp using enqueue_x4 x2 and x1 apis to
enqueue the buffers whose destination has been decided. This worked
properly with no issues but implementing the same functionality using
vlib_buffer_enqueue_to_next created some issues for the main thread
specifically when collecting stat segments. When stat_segment_collection is
called upon and reaches internal_mallinfo in dlmalloc implementation the
while inside it takes a hefty amount of time traversing the chunk aligned
memory segment which causes the main thread to completely ignore anything
else for a few seconds and be busy elsewhere., It's worth mentioning that
the number of buffers that are enqueued within each loop is controlled by
enqueuing them inside a thread local ring buffer and dequeuing at the end
of the loop. The number of buffers which are enqueued to their respective
next nodes in each loop is the same order, within 1 or 2 buffers, of the
count of buffers that have been received in the same loop., Thanks in
advance for your help.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#26557): https://lists.fd.io/g/vpp-dev/message/26557
Mute This Topic: https://lists.fd.io/mt/116484636/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to