xdp-project / xdp-tutorial

XDP tutorial
2.44k stars 577 forks source link

ERRNO 11 : Resource temporarily unavailable #311

Open lancewolves opened 2 years ago

lancewolves commented 2 years ago

Not sure if this is the right place to ask such a question, but I built an application based on the adv03 AF XDP tutorial so maybe someone can help me.

My application is focused on reducing the number of CPU cycles needed for transmitting large amounts of data and has basically no requirements for latency to be low. What I tried to do, was pack my data into full sized (1440 bytes) ethernet frames and only call sendto() once the TX ring is loaded with many of those frames. I thought this would be a great way to offload work onto the DMA controller of my NIC. The issue I'm running into, is that if my TX Ring has more than 16 full size frames loaded at the moment I call sendto() I get ERRNO 11 EAGAIN.

How can I find out, whether this is a hardware limitation of my NIC or a problem with my implementation?