[dpdk-dev] phantom old packets received in new mbuf

Helmut Sim simhelmut at gmail.com
Wed Jul 16 15:22:54 CEST 2014


The CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG and CONFIG_RTE_LIBRTE_MBUF_DEBUG didn't
provide any input, so I also added the CONFIG_RTE_LIBRTE_ETHDEV_DEBUG and
CONFIG_RTE_LIBRTE_IGB_PMD.

below is a sample log showing the problem, though I don't see any clue in
the logs.
in this case pkt 58509 is placed at the place of pkt 58637...
I also noted that the diff between the two packets is 128, and this is the
case in most of the cases where it happens...
the rx_id of the phantom pkt (58509) is 141 (port_id=0 queue_id=0 rx_id=141
staterr=0x3 pkt_len=146)

.....still digging

port_id=0 queue_id=0 rx_id=264 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=265 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=266 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=267 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts(): port_id=0 queue_id=0 rx_tail=268 nb_hold=4 nb_rx=4


IM_LOG_VFLOWCOM: input: START_10 58632

IM_LOG_VFLOWCOM: input: START_10 58633

IM_LOG_VFLOWCOM: input: START_10 58634

IM_LOG_VFLOWCOM: input: START_10 58635

PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=268 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=269 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=270 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=271 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts(): port_id=0 queue_id=0 rx_tail=272 nb_hold=4 nb_rx=4


IM_LOG_VFLOWCOM: input: START_10 58636

IM_LOG_VFLOWCOM: input: START_10 58509

IM_LOG_VFLOWCOM: wrong pkt number arrived from burst 4, expected 58637 but
got 58509

IM_LOG_VFLOWCOM: input: START_10 58638

IM_LOG_VFLOWCOM: input: START_10 58639

PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=272 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=273 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=274 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts():

port_id=0 queue_id=0 rx_id=275 staterr=0x3 pkt_len=146


PMD: eth_igb_recv_pkts(): port_id=0 queue_id=0 rx_tail=276 nb_hold=4 nb_rx=4


IM_LOG_VFLOWCOM: input: START_10 58640

IM_LOG_VFLOWCOM: input: START_10 58641

IM_LOG_VFLOWCOM: input: START_10 58642

IM_LOG_VFLOWCOM: input: START_10 58643



On Wed, Jul 16, 2014 at 3:36 PM, Helmut Sim <simhelmut at gmail.com> wrote:

> I will try it though I hope the amount of logs won't affect the result.
> while analyzing the wireshark captures I noted that the packet i supposed
> to capture arrives in a short time after the one before.
> for example, here is a time between the consecutive transmitted packets:
> 0.000050000 PKT 12201
> 0.000050000 PKT 12202
> 0.000050000 PKT 12203
> 0.000050000 PKT 12204
> 0.000050000 PKT 12205
> 0.000050000 PKT 12206
> 0.000020000 PKT 12207 ==> though this one was received at the app as "PKT
> 12202"
> 0.000050000 PKT 12208
>
> note that the problematic case was transmitted in a very short time after
> its previous one. this is also the case in other problematic cases.
>
> is there any way to configure ethernet IFG (Interf Frame Gap)?
>
> Thanks,
>
>
> On Wed, Jul 16, 2014 at 3:18 PM, Olivier MATZ <olivier.matz at 6wind.com>
> wrote:
>
>> Hello Helmut,
>>
>>
>> 2014-07-16 13:56, Helmut Sim:
>>
>>> then i see that from time to time i get a packet that was already
>>>> received
>>>> earlier instead of receiving the expected packet.
>>>> the output is:
>>>> PKT 12201
>>>> PKT 12202
>>>> PKT 12203
>>>> PKT 12204
>>>> PKT 12205
>>>> PKT 12206
>>>> PKT 12202
>>>> PKT 12208
>>>>
>>>> total received pkts is identical to the total delivered pkts, but part
>>>> of
>>>> the pkts are being received twice...
>>>>
>>>
>> Enabling CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG and
>> CONFIG_RTE_LIBRTE_MBUF_DEBUG could help you to track
>> double free or corruptions.
>>
>> Regards,
>> Olivier
>>
>>
>


More information about the dev mailing list