[dpdk-dev] [PATCH][pktgen] fix repopulation of tx_mbufs table

Wiles, Keith keith.wiles at intel.com
Fri Dec 14 16:52:37 CET 2018



> On Dec 14, 2018, at 9:48 AM, Rafał Kozik <rk at semihalf.com> wrote:
> 
> pt., 14 gru 2018 o 16:45 Wiles, Keith <keith.wiles at intel.com> napisał(a):
>> 
>> 
>> 
>>> On Dec 14, 2018, at 9:29 AM, Wiles, Keith <keith.wiles at intel.com> wrote:
>>> 
>>> 
>>> 
>>>> On Dec 14, 2018, at 5:26 AM, Rafał Kozik <rk at 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 <rk at 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 <rk at 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



More information about the dev mailing list