Hi all. I'm sorry if the question is naive or stupid, but still I couldn't 
find the answer in the manual.

The question is: are the element init functions called just once (with the 
mempool creation) or are they called each time we retrieve a new element from a 
pool? I'm asking because I use a mempool pool with pkt_mbuf structures for 
generating new Ethernet frames (with IP and TCP data) and it works just fine 
for a while (I reckon just as long as I'm getting a new pktmbuf 
with?rte_pktmbuf_alloc and not a recycled one) and at some point my generated 
frames start to have the wrong TCP ckecksum (even though TCP checksum it 
totally OK at first). And the strange thing is that if, for instance, mempool 
has 2048 elements - ?my program works for 5 seconds (rough estimate), and if 
mempool has 4096 elements - my program works for 10 seconds. The connection is 
obvious. I used to believe that init() functions are called each time we 
retrieve an element from a mempool, but now I'm not so sure.


Alex Samoylov

Reply via email to