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]] -=-=-=-=-=-=-=-=-=-=-=-
