> On Dec 14, 2018, at 9:48 AM, Rafał Kozik <r...@semihalf.com> wrote: > > pt., 14 gru 2018 o 16:45 Wiles, Keith <keith.wi...@intel.com> napisał(a): >> >> >> >>> On Dec 14, 2018, at 9:29 AM, Wiles, Keith <keith.wi...@intel.com> wrote: >>> >>> >>> >>>> On Dec 14, 2018, at 5:26 AM, Rafał Kozik <r...@semihalf.com> wrote: >>>> >>>> Hello Keith, >>>> >>>> as from my last post passed about three weeks I would kindly ask >>>> if you could provide any comments about this patch? >>> >>> Missed this patch originally as it did not have pktgen on the status line. > > Thank you for response. I apologies for wrong status line. > >>> >>> Can you give more details as to how to reproduce the failure? > > It occurred when pktgen is set to send more packets the NIC is able to > transfer. > I such cases there could by cycle, when no packets are send, as Tx ring is > full. > >> >> I can not find your patch in patchwork, does anyone know why? > > It was set as Not Applicable: http://patchwork.dpdk.org/patch/48305/
Strange I searched using your name with ‘any’ patches and that did not show up or I miss type something. Looking at the code and your patch it looks fine, so I will integrate the patch with a small formatting fix for indents. >> >>>> >>>> Best regards, >>>> Rafal Kozik >>>> >>>> pt., 23 lis 2018 o 09:23 Rafal Kozik <r...@semihalf.com> napisał(a): >>>>> >>>>> If in one TX cycle NIC does not send any packet, pktgen tries >>>>> to allocate 0 mbufs from pool. In such case DPDK return error >>>>> and packets will not be send. As no packet will be send in >>>>> next iteration this situation will repeat. >>>>> >>>>> Checking if taking more mbufs is needed will prevent this situation. >>>>> >>>>> Fixes: f034b381d19f ("cleanup and fix for FVL NIC performance") >>>>> >>>>> Signed-off-by: Rafal Kozik <r...@semihalf.com> >>>>> --- >>>>> app/pktgen.c | 6 ++++-- >>>>> 1 file changed, 4 insertions(+), 2 deletions(-) >>>>> >>>>> diff --git a/app/pktgen.c b/app/pktgen.c >>>>> index 2d9ff59..b4d3dfe 100644 >>>>> --- a/app/pktgen.c >>>>> +++ b/app/pktgen.c >>>>> @@ -1054,7 +1054,8 @@ pktgen_send_pkts(port_info_t *info, uint16_t qid, >>>>> struct rte_mempool *mp) >>>>> uint16_t saved = info->q[qid].tx_mbufs.len; >>>>> uint16_t nb_pkts = info->tx_burst - saved; >>>>> >>>>> - rc = pg_pktmbuf_alloc_bulk(mp, >>>>> + if (likely(nb_pkts > 0)) >>>>> + rc = pg_pktmbuf_alloc_bulk(mp, >>>>> >>>>> &info->q[qid].tx_mbufs.m_table[saved], >>>>> nb_pkts); >>>>> if (rc == 0) { >>>>> @@ -1070,7 +1071,8 @@ pktgen_send_pkts(port_info_t *info, uint16_t qid, >>>>> struct rte_mempool *mp) >>>>> uint16_t saved = info->q[qid].tx_mbufs.len; >>>>> uint16_t nb_pkts = txCnt - saved; >>>>> >>>>> - rc = pg_pktmbuf_alloc_bulk(mp, >>>>> + if (likely(nb_pkts > 0)) >>>>> + rc = pg_pktmbuf_alloc_bulk(mp, >>>>> >>>>> &info->q[qid].tx_mbufs.m_table[saved], >>>>> nb_pkts); >>>>> if (rc == 0) { >>>>> -- >>>>> 2.7.4 >>>>> >>> >>> Regards, >>> Keith >> >> Regards, >> Keith Regards, Keith