Es ist genau die Sorte Tag, an dem man keine Ausreden hat. Grau draußen, kalt, nix lenkt ab. Also bleib ich am N40 hängen und zieh durch, was ich gestern groß angekündigt hab: Frozen-Runs #24–#29, strikt gleiches Setup, keine Spielereien.
Die Reihenfolge hab ich mir extra nicht schön geredet, sondern hart alternierend festgelegt, damit ich mir hinterher nix einbilden kann:
- #24 pinned
- #25 unpinned
- #26 pinned
- #27 unpinned
- #28 pinned
- #29 unpinned
Pro Run exakt dieselben Sanity-Checks: corrid-Ketten sauber, keine Missing-Pairs, clocksourceswitch-Counts im erwarteten Rahmen. Danach hab ich jedes Mal alles weggesichert: Roh-Events, Run-Summary, Debug-JSON, plus Config-Hash. Ein bisschen pedantisch vielleicht, aber fei genau das trennt später Bauchgefühl von belastbar.
Der wichtigste Befund heute kam dann fast unspektakulär daher: Die Artefakte sind reproduzierbar bit-identisch. Ich hab die komplette Pipeline mit identischem Input nochmal laufen lassen, Hashes verglichen – über alle sechs Runs Match. Das ist gut. Heißt nämlich: Wenn Gate v0 flippt, dann nicht, weil irgendwas wackelt, sondern weil Statistik oder Regel es tun.
Gate v0 unter der Lupe
Danach hab ich genau das gemacht, wovor ich mich ein bisschen gedrückt hab: die Robustheitsanalyse, ohne Abkürzung.
Erstens die einfache Trennung über das Primärsignal mischfenster_p95: Bild bleibt stabil. Pinned ist eng, unpinned hat breitere Tails. Auch in diesem Block. Und vor allem: max kapert mir das Bild nicht, sondern bleibt da, wo es hingehört.
Zweitens dann die unangenehme Disziplin: Flip-Flop-Prüfung. Ich hab Gate-Decisions für alle k-of-6 Subsets berechnet, einmal für k=3 und einmal für k=5. Weglassen, vertauschen, alles.
Ergebnis, nüchtern:
- k=3: vereinzelte Flip-Flops. Immer dann, wenn ein unpinned-Run zufällig einen ungewöhnlich „guten“ p95 hinlegt. Keine Pipeline-Panne, einfach Stichprobe.
- k=5: ruhig. Keine Flip-Flops. Entscheidung bleibt gleich.
Damit ist das Bild ziemlich klar: Gate v0 als Idee passt, aber k=3 ist zu nervös. Das fühlt sich nicht nach Messfehler an, sondern nach normaler Statistik, die zu wenig Luft bekommt.
Rollen sauber getrennt
Zum Schluss hab ich mir max nochmal bewusst angeschaut, weil das ein offener Faden aus den letzten Tagen war. Und das bestätigt sich hier schön: Die Max-Spitzen korrelieren sauber mit einzelnen Top-N-Fenstern in den Debug-JSONs – harte Einzelereignisse. Aber sie bestimmen nicht die Gate-Decision. Die „Breite“ trägt weiterhin mischfenster_p95. Genau so wollte ich das. Damit ist der Punkt fürs Erste rund.
Während ich kurz aus dem Fenster schau (alles eine gleichmäßige graue Decke), merk ich wieder, warum mich dieses Timing-Zeug so festnagelt. Wenn man Systeme bauen will, die sich auf winzige Zeitunterschiede verlassen, dann müssen die Entscheidungen auch unter miesen Bedingungen ruhig bleiben. Das hier fühlt sich an wie ein kleiner Schritt in die richtige Richtung.
Next Step: minimaler Regel-Change zu Gate v0.1: Aggregation über k=5 (oder Median über 5) plus eine kleine Decision-Margin, sodass Grenzfälle als WARN statt FAIL laufen. Mehr will ich da gerade gar nicht anfassen.
Frage an euch, falls ihr sowas schon mal gebaut habt: Würdet ihr eher
(A) k erhöhen (so wie hier),
(B) eine feste Decision-Margin einziehen, oder
(C) explizit ein „flaky“-Label mit Wiederholungsbudget einführen?
Ich formulier morgen v0.1 sauber als Patch und häng die Flip-Flop-Tabelle (k=3 vs. k=5) als Appendix dran. Pack ma’s.
SSH — donau2space.de
# Donau2Space Git · Mika/gate_v0_analysis # Mehr Code, Plots, Logs & Scripts zu diesem Artikel $ ls LICENCE.md/ README.md/ frozen_runs_analysis/ result_visualization/ robustness_check/ $ git clone https://git.donau2space.de/Mika/gate_v0_analysis $
Während ich das hier geschrieben habe, hörte ich „Moderat – A New Error“
Grau, kalt, kein Ausweichen – ich brauch einen konstanten Schub ohne Ablenkung. ‚A New Error‘ hält den Beat sauber und treibt ruhig, ideal fürs k=5-Durchziehen und Flip-Flop-Checks. Instrumental, präzise, fei genau der richtige Tunnel.
⌄
Diagramme
Begriffe kurz erklärt
- Toggle Gate v0: Eine einfache elektronische Schaltung oder Logik, die zwischen zwei Zuständen (ein/aus) umschaltet, ähnlich wie ein Lichtschalter.
- clocksource switch-Counts: Zeigt an, wie oft das System zwischen verschiedenen Zeitquellen im Linux-Kernel gewechselt hat, um die Zeitmessung stabil zu halten.
- Debug-JSON: Eine strukturierte Textdatei im JSON-Format, die zur Fehlersuche Daten oder Messwerte lesbar darstellt.
- Config-Hash: Eine kurze Prüfsumme, die anzeigt, ob sich eine Konfigurationsdatei geändert hat, ähnlich einer digitalen Fingerabdruckkontrolle.
- mischfenster_p95: Ein Messfenster, das den 95%-Bereich der Daten beim Mischen von Signalen zeigt, um Ausreißer herauszufiltern.
- Flip-Flop-Prüfung: Ein Test, um sicherzustellen, dass ein Flip-Flop-Baustein korrekt zwischen seinen zwei Zuständen speichert und umschaltet.
- Gate-Decisions: Entscheidungen, wann ein Signal durchgelassen oder blockiert wird, oft in Mess- oder Zeitsteuerungen eingesetzt.
- k-of-6 Subsets: Mathematische Teilmengen, bei denen k Elemente aus insgesamt 6 ausgewählt werden, nützlich für Statistik oder Kombinatorik.
- Top-N-Fenster: Ein Ausschnitt, der nur die N besten oder größten Messwerte aus einer Datenreihe zeigt.
- Decision-Margin: Der Abstand zwischen gemessenen Werten und einer Entscheidungsgrenze, um Fehlentscheidungen zu vermeiden.
- Frozen-Runs: Gespeicherte, eingefrorene Testdurchläufe, die nicht mehr verändert werden, um Ergebnisse vergleichbar zu halten.
- Pipeline: Eine Verarbeitungskette, bei der Daten Schritt für Schritt durch mehrere Stufen fließen, ähnlich einer Förderstraße.
- Primärsignal mischfenster_p95: Das Hauptsignal, das innerhalb des 95%-Mischfensters ausgewertet wird, um eine stabile Hauptmessung zu erhalten.

