Hi Folks,

I'm observing some unexpected behavior related to how statistics are retrieved from a Physical Function (PF) on an Intel 810 NIC.

Scenario: I have two dpdk-testpmd instances running in separate Kubernetes pods (same worker node). Each instance uses the -a flag to bind to a different VF. (i.e to have consistent port id 0) 

Questions:

  1. PF Statistics and 64B Line Rate:
    I'm noticing that the RX packet-per-second value reported on the PF side for a given VF is higher than the theoretical maximum for 64-byte packets.

    • Does the Intel 810 PMD apply any kind of optimization, offloading, or fast path processing when two VFs (e.g., A and B) are on the same PF?

  2. Concurrent Stats Polling:

    • When two separate dpdk-testpmd processes are running (in pod A and pod B), does the PMD or driver layer support concurrent reading of PF statistics?

    • Is there any locking or synchronization mechanism involved when multiple testpmd instances attempt to pull stats from the same PF simultaneously? ( in essence, does a firmware/OF support concurrent read). 

Thank you,

cd /usr/local/bin && dpdk-testpmd \
--main-lcore \$main -l \$cores -n 4 \
--socket-mem 2048 \
--proc-type auto --file-prefix testpmd_rx0 \
-a \$PCIDEVICE_INTEL_COM_DPDK \
-- --forward-mode=rxonly --auto-start --stats-period 1'"
cd /usr/local/bin && dpdk-testpmd \
--main-lcore \$main -l \$cores -n 4 \
--socket-mem 2048 \
--proc-type auto --file-prefix testpmd_rx1 \
-a \$PCIDEVICE_INTEL_COM_DPDK \
-- --forward-mode=rxonly --auto-start --stats-period 1'"