Repository navigation
docs: state the io_uring 5.19 floor, the epoll 5.10 floor and the v1.6.0 stamp (do not merge before the tag) - #108
Draft
FumingPower3925 wants to merge 7 commits into
Draft
FumingPower3925 wants to merge 7 commits into
FumingPower3925 wants to merge 7 commits into
Conversation
…ease stamp The guard fails on origin/main (5 of 5 tests) and passes once the pages state the v1.6.0 floors. It is part of the docs bun test run. Refs #891 item 14 Refs #891 item 28
…6.0 release stamp The io_uring engine refuses every kernel before 5.19, so the 5.10 floor on the io_uring rows and the engine tier table is replaced; Base is now a 5.19+ fallback. epoll is stated at 5.10+ as the celeris README gives it. The introduction names v1.6.0 at the tag; this PR must not merge before it. Refs #891 item 14 Refs #891 item 28
…mlock or kernel check fails The systemd comment named the epoll fallback, which only Adaptive takes. Refs #891 item 14
|
Important Review skippedIgnore keyword(s) in the title. ⛔ Ignored keywords: 2
Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
11 tasks
…the io_uring kernel wording Refs #891 item 14
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
goceleris-docs | 5768c40 | Commit Preview URL Branch Preview URL |
Oct 20 2026, 08:50 AM |
…ording (fails on the current pages)
30 of 40 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Do not merge before the v1.6.0 tag. Two of the changes state the v1.6.0 release:
introduction.mdnames the current release asv1.6.0and the "currently" line in its Version bullet as1.6.0. Until the tag,v1.5.11is the latest release and those lines would be wrong. The orchestrator merges this at the tag. This PR is a draft and is not marked ready.#Nin this body means goceleris/celeris#N. The item numbers are the unticked- [ ]lines of goceleris/celeris#891, counted in order: 14 is the io_uring and epoll floor line (body line 16), 28 is the introduction stamp line (body line 33). The checklist issues stay open until the final verification pass.What changed, per item
celeris/internal/engine/iouring(New) builds no engine there, because the engine's cancels use theIORING_ASYNC_CANCELflags that 5.19 added (celeris#682, #872). The floor is now 5.19 wherever io_uring is named: theceleris.IOUringrows inconfiguration.mdandcore-concepts.md, the engines table row and the "Linux 5.19+" sentence inengines.md, theperformance.mdrow, thegetting-started.mdrequirements row,introduction.md, and theindex.astroio_uring card. The epoll floor is 5.10+, as the celeris README states it (README.md:335 and :464), in thegetting-started.mdrequirements row,deployment.md(the epoll sentence) and theengines.mdtable cells for Epoll and Adaptive. The Adaptive floor is 5.10+ (README.md:336, :464); as reworded in review round 1, Adaptive uses io_uring only on a 6.1+ kernel that passes the startup probes (epoll below that).engines.md's tier table is reworked:Highis 5.19+ (zero-copy send from 6.0, DEFER_TASKRUN from 6.1),Optionalis 6.0+ and chosen only when the provided-buffers probe has failed, andBaseis a 5.19+ fallback, used when the provided-buffers probe fails on a 5.19 kernel, when the kernel's feature bits do not match its version, or whenCELERIS_MAX_IOURING_TIER=basecaps the tier (celeris/internal/engine/iouring/tier.go(SelectTier),celeris/internal/probe/tier.go(determineTier)). The "A 5.12 kernel transparently uses the Base feature set" sentence is replaced: a kernel before 5.19 gets no io_uring engine; Adaptive runs epoll and an explicitIOUringengine returns the error.introduction.md:18now readsv1.6.0and:147reads1.6.0, both at the tag. Until then the stamp isv1.5.8/1.5.8.Neighbours changed in the same functions
index.astroio_uring card body: "multishot accept/recv, provided buffer rings and zero-copy sendfile" became "multishot accept and, on 6.0 and later, zero-copy send". The io_uring engine has no sendfile (nosendfileininternal/engine/iouring);engines.mdsays epoll has it. Multishot receive with provided buffer rings is opt-in (CELERIS_IOURING_MULTISHOT_RECV=1), so it is no longer listed as a default feature.deployment.mdio_uring prerequisites bullet "Kernel": "LTS-stable io_uring floor" is replaced by the refusal and its reason (the cancels use the 5.19 flags).deployment.mdFAQ "Why is my server using epoll when I asked for io_uring?": the kernel line is now 5.19. The fallback is Adaptive's only: an explicitIOUringengine returns the error on a kernel below 5.19 or a blockedio_uring_setup(iouring.New, passed through bycreateEngineinengine_linux.go), and with a lowRLIMIT_MEMLOCKit runs on fewer workers, down to one, and fails only when not even one ring fits (capWorkersToMemlock, review round 1).deployment.mdsystemd comment: "otherwise the engine falls back to epoll" is now "otherwise Adaptive falls back to epoll; an explicit IOUring engine runs on fewer workers, and fails only when not even one ring fits".engines.md"Std" section paragraph and the "Pre-5.10" row of the engine-choice table, and the "Force IOUring" bullet (≥5.10, ideally ≥5.19 or ≥6.0is now5.19 or later, ideally 6.0 or later).Guard (failing first)
scripts/kernel-floor.test.tsis a bun test in the docs CIbun teststep. It has five tests: every io_uring table row with a Linux floor states 5.19+ and no 5.10; no stale phrase (the exact old text, listed in the file) remains; each page carries its new floor sentence; theindex.astroio_uring card readsLinux 5.19+and the epoll card readsLinux 5.10+; andintroduction.mdnamesRELEASEon both lines.803ead9(guard only, on origin/main pages): 5 of 5 fail (logs/guard-control0-main.log,logs/control0-main-pages-final-test.log).index.astrokept: the four docs tests fail, theindex.astrotest passes (logs/control-A-docs-main.log).index.astroreverted and the docs pages kept: only theindex.astrotest fails (logs/control-B-index-main.log).5cc7fa5: 5 of 5 pass (logs/r2-guard-after-edits.log), and the fullbun testrun is 34 pass, 0 fail (logs/r2-ci-test.log). The three control logs above were rerun at87d121dwith the pages pinned to803ead9. Round 1 control: the guard with the new patterns against the87d121dpages fails 2 of 5 (logs/r2-guard-before-edits.log).Review round 1 (minors, all fixed in this PR)
introduction.mdandengines.mdno longer claim SQPOLL: no tier uses it (SQPollIdle()is 0 inhighTierandoptionalTier, celeris#377).deployment.md'sCAP_SYS_NICEbullet now says it is not a prerequisite.engines.md: a healthy 6.x kernel runs theHighstrategy;Optionalonly on 6.0+ with a failed provided-buffers probe;Basetrigger narrowed from "a High feature probe" to the provided-buffers probe (a failed fixed-files or multishot-accept probe turns off that one feature and the tier staysHigh).deployment.mdsystemd comment and FAQ and theengines.mdnotes (the "Force IOUring" bullet and the pitfall) now say an explicitIOUringengine runs on fewer workers and fails only when not even one ring fits; the kernel and blocked-syscall causes keep the "returns the error" wording. Thedeployment.mdcontainer section (both gates "transparently falls back", "does not crash") is scoped to Adaptive.getting-started.mdandengines.mdsay it uses io_uring only on a 6.1+ kernel that passes the startup probes. The same wording defect in celerisREADME.md:336and:464(and the SQPOLL tier comments) is appended as item 37 of celeris#891 (searched goceleris issues by mechanism first, no existing item).87d121d(2 of 5 tests fail:logs/r2-guard-before-edits.log), 5 of 5 pass at head (logs/r2-guard-after-edits.log). A one-line note besideRELEASEsays a version bump must edit the constant too; the epoll 5.10 floor is named beside it.BaseandOptionaltrigger conditions are from code reading (SelectTier,determineTier, the engine's probes), not from a kernel run.Stale restatements grepped
git grepover the docs tree, on this branch, for5\.10|3\.10|5\.12|1\.5\.8|5\.19, and for "pre-5." and "older kernel" phrases. The remaining5.10values are the epoll floor and the guard's own stale list. The remaining1.5.8is inscripts/build-data.ts:53, a historical note about v1.5.8 benchmark rigs, which is not a claim about the current release.Open points (not blocking; the stated default is taken)
celeris/internal/probe/probe.gogates epoll at kernel 2.6, and no epoll code refuses a kernel below 5.10 that I found. Default taken: state 5.10+ as the README does. If the intended floor is lower, change the four places that say 5.10 for epoll:getting-started.md,deployment.md,engines.md(the Std paragraph) andindex.astro. UNVERIFIED on a kernel before 5.10.graceful-shutdown.mdand others). Default taken: leave those; only the two stamps wait for the tag. The stamps are listed on celeris#649 (see the comment there).Baserow's trigger conditions are from readingdetermineTierand the probe's tier topology, not from a run on a 5.19+ kernel with a failingHighprobe.Verification
Commands and logs are under
evidence/lanes-20261009/DOCSREL/logs/. Head of this PR: see the commit list. Commits:803ead9(guard, failing on origin/main),8aa4aa1(edits),25310d1(systemd comment),87d121d(Adaptive floor and wording),e1a921e(review round 1 guard, failing first),5cc7fa5(review round 1 wording),5768c40(Optional row wording; guard 5 of 5 still pass, CI green).5cc7fa5(logsr2-ci-*.log; theci-*.logfiles are the run at87d121d):bun install --frozen-lockfile(r2-ci-install.log),bun run validate(0 errors,r2-ci-validate.log),bun run build(28 pages indexed,r2-ci-build.log),bun run check(0 errors, 0 warnings, 10 hints,r2-ci-check.log),bun test(34 pass, 0 fail,r2-ci-test.log).edit-docsrel.py, each asserted unique before the write.Not run, and owed: a rendered-page visual check of the changed tables, and a run on a real kernel (5.10 to 5.18, and 5.19) to show the refusal text and the Adaptive fallback that the new prose describes. The Cloudflare deploy runs the same
bun run build. Nothing here was run on amd64 hardware; the docs have no amd64-specific claim.Refs #891 item 14
Refs #891 item 28