[dpdk-users] RX Vector PMD with X710

martin_curran-gray at keysight.com martin_curran-gray at keysight.com
Fri Mar 4 10:22:16 CET 2016


Hi,

About 12 months ago I did a brief evaluation of an Intel X710 card with DPDK 1.7.0.

I've now returned to this with DPDK 2.2.0

I've struggled to get the performance I had before, but have gradually tweaked my app, and the dpdk settings and am getting close.

I've used the test pmd program and noticed, that on my build/configure, it runs in vector rx mode

PMD: i40e_set_rx_function(): Vector rx enabled, please make sure RX burst size no less than 4 (port=1).

But I don't seem to be able to get vector rx mode in my app.

                                                PMD: i40e_set_rx_function(): Port[2] doesn't meet Vector Rx preconditions

I've temporarily tweaked various things I can find to match the defaults the test pmd program uses, but still no joy
( I do get  rxBurst Alloc )

The documentation on the web
http://dpdk.readthedocs.org/en/v2.2.0/nics/ixgbe.html

mentions


  *   rxq->rx_free_thresh >= RTE_PMD_IXGBE_RX_MAX_BURST
  *   rxq->rx_free_thresh < rxq->nb_rx_desc
  *   (rxq->nb_rx_desc % rxq->rx_free_thresh) == 0
  *   rxq->nb_rx_desc < (IXGBE_MAX_RING_DESC - RTE_PMD_IXGBE_RX_MAX_BURST)
I've checked that for my real settings, and they all now pass, since before, I didn't get burst alloc but I do now

I've moved nb_rx_desc and rx_free_thresh to be the same as the values used by testpmd

I've also checked other settings the web page refers to


  *   hw_vlan_strip
  *   hw_vlan_extend
  *   hw_ip_checksum
  *   header_split
  *   dev_conf
fdir_conf->mode will also be checked.


And made my settings for my code match those reported in testpmd, (I've tweaked the testpmd code slightly to print out some settings, see below)

But I still don't get Vector RX in my app, but the test pmd does!

Is there something else I'm missing?

Using centos 6.4  with kernel  2.6.32-358.el6.x86_64
Twin sandybridge host, 64G Ram
Intel X710-DA4

I'm running the testpmd with the same config, igb_uio.ko, include files etc.  as my app (to the best of my knowledge)

Thanks

Martin



********************* Infos for port 0 , RX queue 0  *********************
Mempool: mbuf_pool_socket_0
RX prefetch threshold: 0
RX host threshold: 0
RX writeback threshold: 0
RX free threshold: 32
RX drop packets: off
RX deferred start: off
RX scattered packets: off
Number of RXDs: 128

********************* Infos for port 1  *********************
MAC address: 68:05:CA:36:F2:B9
Connect to socket: 0
memory allocation on the socket: 0
Link status: up
Link speed: 10000 Mbps
Link duplex: full-duplex
Promiscuous mode: enabled
Allmulticast mode: disabled
Maximum number of MAC addresses: 64
Maximum number of MAC addresses of hash filtering: 0
VLAN offload:
  strip on
  filter on
  qinq(extend) off
Hash key size in bytes: 52
Redirection table size: 512
Supported flow types:
  ipv4-frag
  ipv4-tcp
  ipv4-udp
  ipv4-sctp
  ipv4-other
  ipv6-frag
  ipv6-tcp
  ipv6-udp
  ipv6-sctp
  ipv6-other
  l2_payload
Max possible RX queues: 192
Max possible number of RXDs per queue: 4096
Min possible number of RXDs per queue: 64
RXDs number alignment: 32
Max possible TX queues: 192
Max possible number of TXDs per queue: 4096
Min possible number of TXDs per queue: 64
TXDs number alignment: 32

  ######################## FDIR infos for port 0      ########################
  MODE:   DISABLE





More information about the users mailing list