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-with-no-huge-eal-command-line-parameter
It should work with IOMMU=on and VFIO driver, but I haven't verified
that myself.
Sergio