Skip to content

feat(driver, net): support recv_send_poll_first#894

Merged
Berrysoft merged 1 commit into
compio-rs:masterfrom
abh1nav10:support-recv-send-poll-first
May 3, 2026
Merged

feat(driver, net): support recv_send_poll_first#894
Berrysoft merged 1 commit into
compio-rs:masterfrom
abh1nav10:support-recv-send-poll-first

Conversation

@abh1nav10
Copy link
Copy Markdown
Contributor

@abh1nav10 abh1nav10 commented Apr 23, 2026

Adds support for setting the IORING_RECVSEND_POLL_FIRST flag on the IO_URING driver.

Closes #886

@github-actions github-actions Bot added enhancement New feature or request package: driver Related to compio-driver package: net Related to compio-net labels Apr 23, 2026
Comment thread compio-driver/src/sys/op/managed/fallback.rs Outdated
Comment thread compio-driver/src/sys/op/managed/iour.rs Outdated
Comment thread compio-driver/src/sys/op/managed/iour.rs Outdated
Comment thread compio-net/src/socket/linux.rs Outdated
Comment thread compio-net/src/socket/mod.rs Outdated
@abh1nav10
Copy link
Copy Markdown
Contributor Author

abh1nav10 commented Apr 24, 2026

Hi @Berrysoft! As you pointed out, providing an official method to detect kernel version in compio-net and passing that responsibility to the callers, to check whether their version supports it seems to be the right option. If the callers make a mistake, the kernel will most likely ignore the flag(or maybe return EINVAL, not sure about this) which is also fine. We can just make the documentation very clear about this.

@Berrysoft
Copy link
Copy Markdown
Member

I'm going to add kernel detection on Linux in #903 . After that, it's possible to detemine internally if IORING_RECVSEND_POLL_FIRST should be passed.

And I think the APIs such as sock_nonempty and recvsend_poll_first should not be exposed to the user, but should be handled automatically and implicitly.

@abh1nav10
Copy link
Copy Markdown
Contributor Author

@Berrysoft . Sure. Thanks!!

@abh1nav10 abh1nav10 force-pushed the support-recv-send-poll-first branch 2 times, most recently from 04bb384 to 9ca226d Compare May 3, 2026 06:17
@abh1nav10 abh1nav10 marked this pull request as ready for review May 3, 2026 06:31
@abh1nav10 abh1nav10 marked this pull request as draft May 3, 2026 07:49
@abh1nav10 abh1nav10 force-pushed the support-recv-send-poll-first branch from 9ca226d to ee614ef Compare May 3, 2026 07:53
@abh1nav10 abh1nav10 marked this pull request as ready for review May 3, 2026 08:07
@abh1nav10 abh1nav10 requested a review from Berrysoft May 3, 2026 08:07
Comment thread compio-driver/src/sys/op/managed/fusion.rs Outdated
Comment thread compio-driver/src/sys/op/managed/iour.rs Outdated
Comment thread compio-net/src/socket/mod.rs
Comment thread compio-driver/src/sys/op/socket/mod.rs Outdated
@abh1nav10 abh1nav10 marked this pull request as draft May 3, 2026 11:00
@abh1nav10 abh1nav10 force-pushed the support-recv-send-poll-first branch from ee614ef to 734853e Compare May 3, 2026 11:01
Comment thread compio-driver/src/sys/op/managed/iour.rs Outdated
Comment thread compio-driver/src/sys/pal/iour/mod.rs Outdated
Comment thread compio-driver/src/sys/op/managed/fallback.rs
@abh1nav10 abh1nav10 force-pushed the support-recv-send-poll-first branch from 734853e to 0c6ba39 Compare May 3, 2026 11:36
@abh1nav10 abh1nav10 marked this pull request as ready for review May 3, 2026 11:47
@Berrysoft Berrysoft merged commit 9429b27 into compio-rs:master May 3, 2026
71 checks passed
@github-actions github-actions Bot mentioned this pull request May 3, 2026
@abh1nav10 abh1nav10 deleted the support-recv-send-poll-first branch May 3, 2026 12:53
@github-actions github-actions Bot mentioned this pull request May 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request package: driver Related to compio-driver package: net Related to compio-net

Projects

None yet

Development

Successfully merging this pull request may close these issues.

enhancement: add support for setting IORING_RECVSEND_POLL_FIRST in SQE ioprio.

2 participants