[dpdk-users] Packets not processed when huge pages are not used

shesha Sreenivasamurthy (shesha) shesha at cisco.com
Thu Oct 22 18:09:38 CEST 2015


If someone else is not woking on it, I can fix that. What is the right way
to fix it?

Should we have to mmap and perform similar trick (as done for huge pages)
of finding physical pages that are contiguous and discarding the unneeded
mappings ? 

--
- Thanks
char * (*shesha) (uint64_t cache, uint8_t F00D)
{ return 0x0000C0DE; }


-----Original Message-----
From: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com>
Date: Thursday, October 22, 2015 at 7:37 AM
To: Cisco Employee <shesha at cisco.com>
Cc: "users at dpdk.org" <users at dpdk.org>
Subject: Re: [dpdk-users] Packets not processed when huge pages are not
used

On 21/10/2015 22:08, shesha Sreenivasamurthy (shesha) wrote:
> Wanted to add ring addresses information:
>
> PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7fffa0979440
>sw_sc_ring=0x7fffa0975300 hw_ring=0x7fffa097d580 dma_addr=0x7fffa097d580
>
> --
> - Thanks
> char * (*shesha) (uint64_t cache, uint8_t F00D)
> { return 0x0000C0DE; }
>
> From: Cisco Employee <shesha at cisco.com<mailto:shesha at cisco.com>>
> Date: Wednesday, October 21, 2015 at 1:30 PM
> To: "users at dpdk.org<mailto:users at dpdk.org>"
><users at dpdk.org<mailto:users at dpdk.org>>
> Subject: Packets not processed when huge pages are not used
>
> Hi,
>   I have a packet processing application running correctly using
>hugepages with 82599 interface. However, when no-huge is set, I do not
>see any packets being processed by DPDK. When arp packets are sent to
>this interface, I see them being received by the device (BPRC counter
>gets incremented). However, the DD register does not get set by the
>hardware. Therefore, _recv_raw_pkts_vec() returns thinking that there are
>no packets (shown below). Therefore, when huge pages are not used, I
>suspect that some DMA configuration is getting messed up. Any tips on how
>to go about finding the issue will be helpful.
>
> drivers/net/ixgbe/ixgbe_rxtx_vec.c
> 303     /* Before we start moving massive data around, check to see if
> 304      * there is actually a packet available */
> 305     if (!(rxdp->wb.upper.status_error &
> 306                 rte_cpu_to_le_32(IXGBE_RXDADV_STAT_DD)))
> 307         return 0;
>
> Observation: In 
>lib/librte_eal/linuxapp/eal/eal_memory.c::rte_eal_hugepage_init()
>physical memory is set to be same as virtual (mcfg->memseg[0].phys_addr =
>(phys_addr_t)(uintptr_t)addr;). Is that expected ?
Hi Shesha,

It is a known issue:
http://dpdk.org/doc/guides/rel_notes/known_issues.html#pmd-does-not-work-wi
th-no-huge-eal-command-line-parameter

It should work with IOMMU=on and VFIO driver, but I haven't verified
that myself.

Sergio



More information about the users mailing list