Complete the A-to-Z Lardon3D maintenance and coherence pass. Generalize host resource policy, remove the global CPU12 ceiling, preserve host CPU/RAM reserves, scale Task capabilities through the Resource Governor, and validate deterministic parallel GV execution. Migrate Project DB to v23 with data-driven camera, lens, optical configuration and calibration profiles, including manual lenses without EXIF. Integrate safe optional LARDON SSD swap/scratch control with Governor and F10 drain/safe-to-unplug semantics. Refactor the ncurses TUI into a runtime observatory with durable progress, elapsed time, smoothed ETA, throughput, resource telemetry, Governor state, optics workflow, colors and compact/no-color fallbacks. Reconcile Queue lifetime, persistence, concurrency, comments, tests, README, AGENTS and canonical documentation. GLOBAL_MAINTENANCE_AUDIT=PASS/FROZEN
2.8 KiB
2.8 KiB
Revue historique des fondations Lardon3D
Ce document conserve l'état de la revue de fondation à son époque. Les limites « absence de persistance », tombstones et tickets recommandés ci-dessous ne décrivent plus l'état courant. Pour l'architecture active, voir Task, Queue, Resource Governor et le registre de maintenance.
Objectif
Documenter la revue technique de la phase de fondation : task, task_queue, hardware_profile, resource_snapshot, resource_governor, réservations et intégration au scheduler.
Composants évalués
Task
- Cycle de vie complet
- États et transitions
- Pause/reprise coopérative
- Annulation coopérative
- Checkpoints
- Estimations de ressources
Task Queue
- File FIFO
- Sélection de la première tâche admissible
- Backpressure
- Bornage du pending_count
- Comportement WAIT
Hardware Profile
- Détection des capacités matérielles
- CPU, RAM, GPU/VRAM
Resource Snapshot
- Capture instantanée des ressources
- RAM libre, charge CPU, VRAM
Resource Governor
- Arbitrage centralisé
- Calcul de lots adaptatifs
- Réservations opaques
- Historique borné
Intégration Scheduler ↔ Governor
- Cycle d'exécution
- Admission
- Gestion des pauses
- Séquences adaptatives
Invariants garantis
- Intégrité des estimations (immuables)
- Obligation de réservation active avant démarrage
- Cohérence du contrat de lot transmis au callback
- Gestion sécurisée de WAIT et des variables de condition
- Libération unique des réservations
- Protection mutex unique du gouverneur
- Séparation stricte des rôles (scheduler ne décide pas des ressources)
Limites connues lors de cette revue historique
- File à worker unique avec FIFO strict
- Absence de notification automatique de libération externe
- Accumulation de tombstones de réservations
- Absence de persistance
- Absence de DAG
- Absence de priorités
- Absence de pools de workers multiples
Risques à surveiller
- Ordre de destruction des objets
- Concurrence sur la libération des réservations
- Récursivité/blocage par un callback détruisant sa propre tâche
- Bornage de la mémoire
- Indépendance de la publication atomique
Feuille de route historique (désormais supersédée)
Prochains tickets recommandés
- Sélectionner une tâche admissible sans blocage par la tête de file ✓
- Introduire le DAG et les dépendances
- Persister les tâches et checkpoints de reprise
- Orchestrer et mesurer les séquences adaptatives
- Ajouter les pools bornés CPU, IO et GPU
- Migrer l'import vers le scheduler générique
- Ajouter la publication live validée, puis le viewer Vulkan séparé
Validation
- Tests unitaires passés
- ASan/UBSan passés
- TSan passé
- git diff --check propre