You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Severity: low / enhancement — analysis first; the win is micro today but grows with #91.
What it is
IOSQE_CQE_SKIP_SUCCESS (SQE flag 1 << 6, kernel 5.17+): a successfully-completing op posts no CQE; failures still post. For fire-and-forget ops it removes one CQE reap + dispatch per op.
Where it fits today
ASYNC_CANCEL SQEs — the only current candidate. Cancel completions are already ignored (case KindCancel: return; — Reactor.Loop.SharedRing.cs#L177-L178), so skipping the success CQE is pure savings. Note cancels frequently "fail" benignly (-ENOENT target already completed, -EALREADY) — those still post and stay ignored; that's fine.
Where it must never be used
recv (multishot — CQEs are the data path), all sends (completions drive WriteHead, partial-send resubmit, CompleteFlush, ZC notifs), accept, the eventfd wake poll, and OP_TIMEOUT (its normal completion is -ETIME, a failure code, so skip changes nothing and only invites confusion).
Feature-gate: on pre-5.17 kernels the flag yields -EINVAL per op; probe once at startup and fall back to plain SQEs.
Verify flag interactions on the target kernel (notably with linked SQEs / drain semantics) before enabling anywhere near a chain.
Invariant to preserve: nothing in the runtime may wait on or count a completion from a skipped op. Today cancels have no such accounting — keep it that way, and document the rule.
Severity: low / enhancement — analysis first; the win is micro today but grows with #91.
What it is
IOSQE_CQE_SKIP_SUCCESS(SQE flag1 << 6, kernel 5.17+): a successfully-completing op posts no CQE; failures still post. For fire-and-forget ops it removes one CQE reap + dispatch per op.Where it fits today
ASYNC_CANCELSQEs — the only current candidate. Cancel completions are already ignored (case KindCancel: return;— Reactor.Loop.SharedRing.cs#L177-L178), so skipping the success CQE is pure savings. Note cancels frequently "fail" benignly (-ENOENTtarget already completed,-EALREADY) — those still post and stay ignored; that's fine.Where it must never be used
recv (multishot — CQEs are the data path), all sends (completions drive
WriteHead, partial-send resubmit,CompleteFlush, ZC notifs), accept, the eventfd wake poll, andOP_TIMEOUT(its normal completion is-ETIME, a failure code, so skip changes nothing and only invites confusion).Where it gets interesting later
IORING_OP_CLOSEper connection — at high connection churn that's real CQE volume worth skipping (log failures, which still post).Suggested analysis before implementing
-EINVALper op; probe once at startup and fall back to plain SQEs.