demikernel icon indicating copy to clipboard operation
demikernel copied to clipboard

[Catpowder] Windows: Support more than one concurrent packet per ring in XDP

Open kyleholohan opened this issue 1 year ago • 1 comments

Context

Currently, each Rx/Tx ring in XDP allow for only a single buffer. This value is not configurable, and some code in Rx/TxRing relies on the assumption that only one buffer is allocated. This prevents more than one packet from being sent or received concurrently.

Proposed Solution

Rx/Tx fill and completion ring sizes should be configurable. Additionally, the Rx/Tx ring size and the number of user memory buffers should be decoupled, able to be configured separately. Ideally, user memory buffers would be over-allocated for high throughput systems (at least the sum of the size of the completion and fill rings for each end of the socket).

Alternative Solutions

Potentially one could create additional sockets with one buffer, but the overhead per socket likely outweighs the overhead of more buffers per socket.

kyleholohan avatar Oct 10 '24 19:10 kyleholohan

Hello @kyleholohan I am a solo contributor and I was interested in this issue. So I tried to fix this issue. Can someone please review. Let me know anything you want in the comments.

Thank you.

Fix

mvp-2003 avatar Jul 22 '25 14:07 mvp-2003