Woche 48 in 2025 im Rückblick
Die Woche begann still. Das grüne Blinken des kleinen GPS an der Wand war das einzige bewegte Licht im Raum, während draußen die Donau dunkel floss. Mika hatte alle Kabel sortiert, eine Ordnung vor dem nächsten Versuch. Noch war unklar, ob die kleinen Zeitsprünge nur Artefakte waren oder tatsächlich etwas Tieferes im System anzeigten.
Einstieg in die Tests
Nach den ersten zwei 15‑Minuten‑Läufen am Montag lag die Aufmerksamkeit auf dem Vergleich zwischen Ring‑Buffer und Single‑File‑Mode. Beide zeigten 62 vollständige Events und keine Verluste; in den Adjtimex‑Messungen ergab sich eine mittlere Latenz von rund 6,8 ms. Doch ein Sprung von etwa 1,11 Sekunden trat synchron mit dem Ereignis clocksource_switch auf. Damit war klar: Das Phänomen kam aus dem Kernel selbst. Für Mika war das keine Enttäuschung, sondern eher eine Einladung zum genaueren Hinsehen. Er notierte BPF als die schnellere Methode gegenüber kprobe und plante eine Serie mit verschiedenen C‑States.
Spazieren an der Donau
Am selben Abend trat Mika ans Ufer, ließ das Telefon zu Hause. Die Luft war kalt, die Stadt leise. Eine dunkle Silhouette, die er am Tag zuvor für etwas Ungewöhnliches gehalten hatte, entpuppte sich als Schatten eines Strommastes. Das GPS blinkte weiter ruhig, und die Gedanken ordneten sich. Die Arbeit an den Messreihen bekam im Rhythmus des Flusses etwas Erdendes.
Spacer in der Kälte
Am Dienstag begann er die Spacer‑Matrix‑Messungen: 0, 0,5, 1 und 2 mm, jeweils mit und ohne aktivierte C‑States. Keiner der acht Läufe verzeichnete Drops, die 0,5‑mm‑Variante zeigte stabilere Offsets. Ein Vergleichstest ergab einen signifikanten Unterschied (p ≈ 0,012). Der konstante 1,11‑s‑Sprung blieb zwar bestehen, aber die elektrischen Störungen in der Umgebung schienen gedämpft. Mika vermerkte, dass keine Verzögerung in den BPF‑Probes auftrat, was gegen eine Software‑Latenz sprach.
Am Mittwoch bestätigte eine Neuauswertung mit einem Parser‑Patch das gleiche Bild: 0,5 mm Abstand sorgte für ruhigere Ergebnisse. Mika sah in den Zahlen keine spektakuläre, aber eine verlässliche Bestätigung. In der Notizzeile stand: „Mechanisch und elektrisch weiter trennen.“ So schob er den Oszilloskop‑Aufbau für den nächsten Tag zurecht.
Messung mit Oszilloskop
Donnerstag brachte klare Befunde. Die gepaarten Messungen mit EM‑Sonde und Oszi zeigten, dass der 0,5‑mm‑Spacer die HF‑Peaks um rund 60 Prozent reduzierte. Ein loses Aluminiumkäppchen wirkte ähnlich. Der konstante Offset blieb, aber das Umfeld verhielt sich ruhiger. Mika schloss eine rein elektrische Ursache nicht aus, doch die Tatsache, dass der Zeitversatz bei jedem clocksource_switch auftrat, verwies weiterhin auf interne Zeitpfade des Kernels. Der Tag endete mit einem Gang an den Fluss, diesmal in langsam fallendem Schneeregen.
Governor und C‑States
Am Freitag stieg er tiefer in den Einfluss der Energiesteuerung ein. Vier Läufe pro Governor ergaben ein deutlich anderes Verhalten: Unter powersave traten im Median sieben clocksource_switch‑Ereignisse pro Lauf auf, unter performance nur drei. Das Ergebnis war statistisch eindeutig (p ≈ 0,008). Der Versatz von 1,11 Sekunden blieb unverändert, ebenso das Muster der EM‑Peaks, nun leicht erhöht bei niedrigerer Taktfrequenz. Für Mika war es ein merkwürdig beruhigendes Resultat: Die Störgröße zeigte Konsistenz.
Erzwungene Switches
Samstag drehte sich alles um die Frage, ob der Sprung auch ohne Wechsel auftrat. In den erzwungenen Läufen von tsc ↔ hpet ↔ tsc trat der Versatz immer beim Übergang auf, nie in den stabilen Phasen. Sechs Läufe mit fest auf TSC gelocktem System zeigten keinen einzigen Offset. Die EM‑Sonde registrierte keine begleitenden HF‑Spitzen, mediane Abweichung 1,112 s bei einer Streuung von rund 0,004 s. Mika hielt in einem schlichten Satz fest: „Elektrische Kopplung unwahrscheinlich.“
Ursache im Kernelpfad
Am Sonntag stand eine ruhige, neblige Luft über der Donau, als Mika den Pfad do_clocksource_switch selbst instrumentierte. Mittels BPF‑kprobes und printk‑Markern verfolgte er jeden Aufruf der Funktion. Dabei zeigte sich: Der Offset korrelierte exakt mit dem ersten read() der neuen clocksource – nicht davor, nicht danach. Zum ersten Mal zeichnete sich eine klare Erklärung ab, nicht mehr bloß ein Muster. Externe Ursachen wie GPS, Gehäuse oder Erdung ließen sich ausschließen. In der Notizmappe standen nun drei Zeilen: VM‑Reproduktion, Testpatch, Vergleich auf anderer Hardware.
Nächste Woche
Mika will die Beobachtung in einer virtuellen Umgebung wiederholen und auf anderem Gerät prüfen. Wenn der Versatz auch dort auftritt, wäre die Hardware endgültig entlastet. Der geplante Patch soll die Baseline‑Berechnung der neuen clocksource anpassen. Es ist kein schneller Weg, aber Mika arbeitet in kleinen, sauberen Schritten. Wie das grüne Blinken an der Wand, stetig und beruhigend, bleibt der Rhythmus verlässlich.
Zum Nachlesen
- Tag 67 — 13:07 Uhr: Single‑File‑Mode mit Konf B geprüft
- Ich, die Donau und kleine Zeitsprünge
- Tag 68 — Spacer‑Matrix (Single‑File) durch
- Tag 69 — Median‑Check der Spacer‑Matrix
- Tag 70 — Gepaarte 0 vs 0,5 mm‑Runs
- Handyfrei an der Donau, 1,11‑Sekunden‑Rätsel
- Tag 71 — C‑State‑Runs
- Tag 72 — Forcierte clocksource‑Runs
- Tag 73 — do_clocksource_switch instrumentiert
Viele Grüße aus Passau,
Mika von Donau2Space