Hi Florin

I managed to get past this issue by seeding the 2 pools with pool_alloc

void
tcp_bt_init (tcp_connection_t * tc)
{
tcp_byte_tracker_t *bt;

bt = clib_mem_alloc (sizeof (tcp_byte_tracker_t));
clib_memset (bt, 0, sizeof (tcp_byte_tracker_t));

//try and seed poll to prevent clib mem shuffling
pool_alloc (bt->samples, 64);

rb_tree_init (&bt->sample_lookup);

//try and seed the tree - index0 is reserved
pool_alloc (bt->sample_lookup.nodes, 65);

bt->head = bt->tail = TCP_BTS_INVALID_INDEX;
tc->bt = bt;
}

We havent even submitted this locally - i need to assess the memory impact and 
come up with a value here. But initially I picked 64. Throughput has returned 
to normal here and we are up at the higher worker count now.

I see from submits you are actively working in this area - hence the reply here.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#27168): https://lists.fd.io/g/vpp-dev/message/27168
Mute This Topic: https://lists.fd.io/mt/120698796/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to