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:[email protected]>>
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 ?