Skip to content

Correct stale env-var statements in engine/iouring/doc.go and the adaptive.Engine comment; ioUringViable ignores the tier cap #679

Description

@FumingPower3925

Stale statements to correct in engine/iouring and adaptive (found while writing #418's table)

Checked against main c08e30c:

  1. engine/iouring/doc.go, CELERIS_IOURING_PBUF_COUNT. The doc says values "are clamped to [16, 32768]" and that non-power-of-two values "cause ring registration failure and automatic fallback". resolveBufRingCount actually rounds a non-power-of-two up to the next power of two and clamps to [1024, 32768] (bufRingCountMin = 1024).
  2. engine/iouring/doc.go, CELERIS_IOURING_SEND_ZC. The doc says the "final default decision [is] pending measured cluster A/B benchmarks (celeris#465)". io_uring: probeSendZC can never detect copy-fallback — SEND_ZC enabled on every host regardless of NIC #465 is closed, and the default is decided: SEND_ZC is on wherever the startup probe finds it working.
  3. The adaptive.Engine type comment says CELERIS_ADAPTIVE_START "disables the runtime switch". It only chooses the start engine: chooseStartEngine is the variable's only reader, and the controller still switches. The README (docs: state the TLS posture, document the tuning environment variables, and give overload a doc.go #677) and the docs site (docs: correct the engine tuning facts, add the recovery catalog row, show in-process HTTPS on std docs#71) now say this correctly.
  4. Behaviour, not text: ioUringViable does not consult the tier CELERIS_MAX_IOURING_TIER caps to. With the cap at none on a 6.10+ kernel, Adaptive still treats io_uring as viable. Each promotion then fails to build the io_uring engine ("io_uring not available on this system") and backs off through abortStandbyBuild. That is safe, but it is repeated work plus a WARN per attempt. Consider treating a capped none as not viable.

Items 1-3 are comment-only. They wait until the #657 fix PRs have landed, because those PRs change both packages.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions