Some questions about E810 and DPDK

Medvedkin, Vladimir vladimir.medvedkin at intel.com
Tue Sep 1 19:59:29 CEST 2026


Hi Maxim,

please see inline

On 8/30/2026 9:30 AM, Maxim Fedyarov wrote:
> Hello Vladimir!
>
> I'm currently working on some project with DPDK and Intel E810. This 
> is my first experience with DPDK and for now I'm running into some 
> problem and have a question. I saw your commits in DPDK and thought it 
> would be great to talk directly to the developers. I realize that as 
> an Intel customer it would be more appropriate for me to contact 
> technical support first, so feel free to direct me to them.

Welcome to the DPDK community! The users at dpdk.org mailing list is a good 
place for this kind of questions with plenty of devs there.

>
> For some reason I can't get more than 86 Mpps with 78 bytes packets on 
> testpmd with macswap forward mode when the theoretical maximum is 
> around 128 Mpps on 100Gb. It's strange, because in NIC performance 
> report 
> (https://fast.dpdk.org/doc/perf/DPDK_22_07_Intel_NIC_performance_report.pdf) 
> Test#5 shows 116 Mpps for 64 bytes packets.
> I try to troubleshoot it on my own DPDK application "protector-dpdk" 
> with some CPU work with packets and find out that when i use 10 cores 
> and get ~86 Mpps than my average batch of RX packets is 64. But if I 
> add another 2 threads, then it decreases sharply to ~12 packets in the 
> RX batch.
> iperf one first line shows this
> 6.13% protector-dpdk librte_eal.so.26.0 [.] rte_delay_us_block
>
> I try to find information but I don't find anyone else to encounter 
> this. Maybe you could suggest what else I could check ?
>
> I run with this command:
> # ./dpdk-testpmd -l 0-4 -n 6 -a 12:00.0 --socket-mem=4096 -- 
> --burst=64 --txq=4 --rxq=4 --rxd=512 --txd=512 --mbcache=512 -i -a 
> --rss-ip --port-topology=loop --nb-cores 4 --forward-mode=macswap 
> --eth-peer=0,94:6d:ae:b9:ad:c0
>
> and get RX-missed after 86 Mpps:
> ######################## NIC statistics for port 0 
>  ########################
>   RX-packets: 2542840830 <tel:(254)%20284-0830> RX-missed: 583927799 
>  RX-bytes:  188171278008
>   RX-errors: 0
>   RX-nombuf:  0
>   TX-packets: 2389511082 TX-errors: 0          TX-bytes:  176823803890
>
>   Throughput (since last show)
>   Rx-pps:     95506607          Rx-bps:  56539950368
>   Tx-pps:     87209523          Tx-bps:  51628035504
> ############################################################################
>
> Adding more cores doesn't change the situation. I also played with 
> burst, rxd,txd, mbcache and nothing get me more than ~86 Mpps.
> DPDK 25.11 is builded with RTE_NET_INTEL_USE_16BYTE_DESC. By the way, 
> when i read the docs, i found only 
> https://edc.intel.com/content/www/us/en/design/products/ethernet/config-guide-e810-dpdk/high-performance-of-small-packets-on-100g-nic-use-16-bytes-rx-descriptor-size/ 
> when this define has old name CONFIG_RTE_LIBRTE_ICE_16BYTE_RX_DESC.
>
> I have following configuration:
> 1) OS: Ubuntu 24.04
> Firstly i test it on Ubuntu 22.02 and the results there were worse
>
> 2) CPU: Intel(R) Xeon(R) Platinum 8168 CPU @ 2.70GHz
>
> 3) Grub
> GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=0-23 nohz_full=0-23 
> rcu_nocbs=0-23 default_hugepagesz=1G hugepagesz=1G hugepages=40 
> intel_iommu=on iommu=pt idle=poll nmi_watchdog=0 audit=0 nosoftlockup 
> processor.max_cstate=0 intel_idle.max_cstate=0 hpet=disable mce=off 
> tsc=reliable numa_balancing=disable"
>
> 4) Firmware
> # ethtool -i ens2f1np1
> driver: ice
> version: 6.8.0-136-generic
> firmware-version: 5.01 0x80021f8b 1.4031.0
>
> 5) PCI 3.0
> LnkSta: Speed 8GT/s (downgraded), Width x16
> I hope this is not a bottleneck for 100Gb

That is the problem. You hit the PCIe bottleneck. With PCIe 4.0 x16 you 
should achieve better results.

>
> 6) Two T-rex traffic generators each produced 50 Gb connected to DuT 
> via switch. And i can see that switch is send 100 Gb
>
>
> And another question is that I need to do QoS for my project. In my 
> DPDK application I process packets from one port. And critical service 
> traffic (like BFD) will also flow through it. So I need to allocate 
> around 0.01% of bandwidth for this traffic. Do i understand correctly 
> that if i use vfio-pci and use PF in DPDK application then *i can use 
> only PFC on layer-2 with PCP value in VLAN-tag*?
> As i read in "Intel® Ethernet 800 Series Linux Flow Control 
> Configuration Guide for RDMA Use Cases" for DSCP-based PFC on E810 i 
> must use openlldp user-space daemon and it means that it cannot be 
> used with device binded to vfio-pci ?
> I haven't checked it yet, but I'm wondering if maybe if I split my PF 
> into VF's and apply DSCP-based configuration on PF then will it work 
> and allocate me my bandwidth?

Yes, you can configure DCB/PFC based on DSCP with kernel driver using 
lldptool and work with VF from DPDK. This mode(i.e. DSCP based) 
currently is not supported in DPDK ICE PMD. Also please note, ETS 
bandwidth granularity is 1%, and, with current implementation, all 
non-TC0 traffic will be received by queue0 of your VF. But looks like 
this should be fine for your usecase.

Alternatively, if you decide to use PF, you can workaround this by 
remapping dscp->pcp on a switch.

>
> Thank you for your time. I would appreciate any response from you.
>
> Best regards,
> Maxim Fedyarov

-- 
Regards,
Vladimir



More information about the users mailing list