The problem appears to be that rxmode.mq_mode was never set to ETH_MQ_RX_RSS in 
testpmd.c; it?s initialized to 0. There should probably be a configuration for 
that, or should be set when rxq > 1. 

Dan

On Jan 8, 2014, at 3:24 PM, Dan Kan <dan at nyansa.com> wrote:

> I'm evaluating DPDK using dpdk-1.5.1r1. I have been playing around with the 
> test-pmd sample app. I'm having a hard time to get RSS to work. I have a 
> 2-port 82599 Intel X540-DA2 NIC. I'm running the following command to start 
> the app.
> 
> sudo ./testpmd -c 0x1f -n 2 -- -i --portmask=0x3 --nb-cores=4 --rxq=4 --txq=4
> 
> I have a packet generator that sends udp packets with various src IP. 
> According testpmd, I'm only receiving packets in port 0's queue 0. Packets 
> are not going into any other queues. I have attached the output from testpmd.
> 
> 
>   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 1/Queue= 0 -------
>   RX-packets: 1000000        TX-packets: 1000000        TX-dropped: 0         
>     
>   ---------------------- Forward statistics for port 0  ----------------------
>   RX-packets: 1000000        RX-dropped: 0             RX-total: 1000000
>   TX-packets: 0              TX-dropped: 0             TX-total: 0
>   ----------------------------------------------------------------------------
> 
>   ---------------------- Forward statistics for port 1  ----------------------
>   RX-packets: 0              RX-dropped: 0             RX-total: 0
>   TX-packets: 1000000        TX-dropped: 0             TX-total: 1000000
>   ----------------------------------------------------------------------------
> 
>   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
>   RX-packets: 1000000        RX-dropped: 0             RX-total: 1000000
>   TX-packets: 1000000        TX-dropped: 0             TX-total: 1000000
>   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 
> On a separate note, I also find that the CPU utilization using 1 forwarding 
> core for 2 ports seems to be better (in the aggregate sense) than using 2 
> forwarding cores for 2 ports. Running at 10gbps line rate of pktlen=400, with 
> 1 core, the core's utilization is 40%. With 2 cores, each core's utilization 
> would 30%, giving an aggregate of 60%.
> 
> I have a use case of only doing rxonly packet processing. From my initial 
> test, it seems that it's more efficient to have a single core read packets 
> from both ports, and distribute the packet using rte_ring instead of having 
> each core read from its port. The rte_eth_rx operations appear to be much CPU 
> intensive than rte_ring_dequeue operations. 
> 
> Thanks in advance.
> 
> Dan

Reply via email to