I do have some experience with DPDK but currently I'm reading many blogs about XDP. I am trying to compare both technologies and understand the differences between DPDK and XDP. This raises some questions. I hope someone can help me with the following questions:
- With DPDK I can map workers to CPU cores and isolate CPU cores which will be used by DPDK. In case of eBPF / XDP, which CPU cores are used? Are all available CPU cores used? Would it be possible to isolate CPU cores meant for eBPF / XDP programs?
- When I test the throughput from a DPDK application, I'm able to check whether ring buffers (mempools) are full so packets will be lost. But how can I check whether an eBPF / XDP program causes packet drops because the throughput is too high? I assume when an eBPF / XDP program takes too much time to process a packet, eventually you will see packet drops? (especially when sending 64B packets on a high rate to find the maximum number of packets that can be send)
Thank you in advance for your help!