Spec couche 0 — Module io_uring (redirection)
Document de redirection — Version 2.0
Ce document ne fait plus autorité. Il était la synthèse early-stage du module
io_uring, calibrée sur un kernel ancien. Sa fonction d’inventaire et de découpage a été entièrement reprise et corrigée par le document maître et les spécifications détaillées par Temps (cible kernel 6.12 LTS figée).Il est conservé comme point de redirection pour ne pas casser les liens entrants ; tout son contenu de fond vit désormais dans les documents ci-dessous.
Où lire la spécification du module io_uring
Décisions d’architecture
- ADR-022 — Architecture du module io_uring (10 décisions structurantes)
- ADR-028 — Soundness et téardown (S1/S2/S3) (complète ADR-022)
Document maître (point d’entrée)
- io_uring — inventaire maître (cible 6.12) : énumération exhaustive des 8 axes, classement retenu/obsolète, décisions de soundness, découpage en Temps, squelette rustdoc du cœur.
Spécifications détaillées par Temps
- Temps 1 — cœur de l’API
- Temps 2a — filesystem
- Temps 2b — réseau
- Temps 2c — async-spécifiques
- Temps 2d — URING_CMD (passthrough)
- Temps 3a — registration
- Temps 3b — buffers fournis (ring)
- Temps 3c — opérations liées
- Temps 3d — multishot
- Temps 3e — multi-thread
- Temps 3f — confinement (sandbox)
- Temps 4 — accès brut (raw)
Note historique — sémantique soft/hard link (corrigé — réf. spec 3c §2). Une version antérieure de ce document décrivait la sémantique des liens soft/hard à l’envers et un inventaire incomplet (calibré sur ~5.15). La sémantique correcte, vérifiée kernel et faisant foi dans
io-uring-3c-linked.md§2, est :
- soft (
IOSQE_IO_LINK) : la chaîne est rompue sur erreur de complétion d’un maillon —short readinclus (une lecture partielle compte comme une erreur de chaînage) → les maillons suivants reçoivent-ECANCELED;- hard (
IOSQE_IO_HARDLINK) : la chaîne n’est pas rompue par une erreur de complétion d’un maillon (les suivants s’exécutent quand même) ;- dans les deux cas, l’ordre d’exécution des maillons est garanti ;
- un échec de soumission du maillon parent rompt la chaîne.
En cas de divergence, le document maître et les specs par Temps font foi.
Licence du document : MPL 2.0 Statut : Document de redirection. Le contenu normatif vit dans le document maître et les specs par Temps.