Hi. I've been using DPDK for a research project (https://www.usenix.org/conference/osdi14/technical-sessions/presentation/belay) for over 2 years and I'd like to report a behavior that puzzles me using DPDK.
The behavior leads to memory corruption and is caused by the incorrect shutdown of DMA. I can reproduce it after executing the following steps: $ sudo modprobe uio $ sudo insmod ./build/kmod/igb_uio.ko $ sudo python ./tools/dpdk_nic_bind.py --bind=igb_uio 0000:42:00.1 $ sudo ./build/app/testpmd -- --forward-mode=icmpecho Then I terminate the DPDK program (after populating the ARP cache of another host on the local network). After this, I can send UDP packets to the host and can observe their payload in host memory. Clearly, network packets are arriving to the network card and are written to RAM after DPDK has finished executing. Am I doing something wrong? Is this behavior expected? Regards, George
