Trying to find to retrieve data from io_uring efficiently. Short recv/send and the fragile SQE links have me blasting requests at the kernel to with most being cancelled.
If I request a recv of 8MB (basically the size of my user space buffer) and a 50 byte packet arrives (assume no LWM), a short recv will be posted to the completion queue with data in the buffer.
And since it is not a complete read, it will cause any linked operations to cancel.
If more data arrives on the socket, it kernel can't post more can it? When trying to reduce latency to a minimum, do I need to have multiple outstanding, non-linked requests that will easily all have short reads while sitting in the completion queue.
It there anything that describes this flow in detail?