>> Here instead of recreating each packet separately, we use clones counter >> to resend the same mbuf to the line multiple times. >> > Do you have any numbers on how much performance improvement gained?
Hi Ferruh, Yes, I'll post that in v1. In general, on our 100G device in default configuration I had to use 8-16 queues (read cores) to reach line rate on 1400 packet size. Will give exact numbers. With clones I was able to see linerate on 1-2 tx queues. That of course depends on if HW itself allows to handle that amount of traffic. Reaching max PPS on small packet sizes obviously helps here as well. >> + rte_exit(EXIT_FAILURE, >> + "clones must be >= 0 and <= %d >> (burst)\n", >> + nb_pkt_per_burst); > > Do you need to enforce the "n <= nb_pkt_per_burst", burst value can be > changed > later and trying to keep 'clones' values in sync with it is additional work. > > In the flowgen logic, with each burst a new packet is created anyway. So > instead > of enforcing the 'clones' number range, in documentation you can say the > clone > number can't exceed the burst number whatever it is set. Looks reasonable, thanks. >> uint16_t nb_pkt_per_burst = DEF_PKT_BURST; /**< Number of packets per >> burst. */ >> +uint16_t nb_pkt_clones; /**< Number of tx packet clones to send. */ >> uint16_t mb_mempool_cache = DEF_MBUF_CACHE; /**< Size of mbuf mempool >> cache. */ >> > > Both the parameter name, 'clones', and the variable name 'nb_pkt_clones' are > too > generic, and may mislead users. Please remember that testpms usage is very > wide. > You are updating very specifically the flowgen forwarding engine, can you > please > prefix the 'flowgen', like: > 'flowgen-clones' & 'nb_pkt_flowgen_clones'. > Also explicitly mention in the description that this is for flowgen clones. Reasonable as well. Initially I was thinking about applying that to "tx-only" as well, but the decided to stay with flowgen as more generic mode. Thanks, Igor