| .. | ||
| README.md | ||
Unit-Test-Anforderungen für EM-Summary-Metriken in trace_agg.py
Purpose
Validierung und Absicherung der neuen EM-Summary-Felder im trace_agg.py-Skript.
Problemstellung: Die Integration der drei neuen EM-Summary-Metriken (peak_amplitude, median_bandpower, crosscorr_with_clockevents) benötigt stabile Unit-Tests zur Gewährleistung funktionaler Korrektheit und numerischer Konsistenz.
Ziele:
- Sicherstellen korrekter Berechnung und Aggregation der EM-Metriken.
- Überwachung der Integrität und Stabilität der CI bei aktivierten EM-Summaries.
- Reduktion von Fehlinterpretationen durch fehlerhafte Messwerte oder Parserabweichungen.
Kontext & Hintergrund
Aggregierte EM-Trace-Summaries pro CI-Run.
Gruppierung:
- CI-Jobs
- Testläufe
- Nightly-Runs
Trace-Metadaten / zusätzliche Tags:
- clocksource_switch_offset
- c_state_distribution
- board_id
- measurement_timestamp
Domänenkontext:
- HF-Messung in Embedded-Systemen
- Anomalieerkennung im CI-Prozess
- Fehlertolerante Metrikaggregation
Outlier-Definition:
- Methode: statistisch, basierend auf Bootstrap-Sampling der EM-Features
- Beschreibung: Outlier = Werte oberhalb 97,5. Perzentil im Bootstrap der peak_amplitude über Runs.
- Metrik: peak_amplitude
Motivation:
- Früherkennung von Hardware-Fehlern über hochfrequente Signale.
- Reduktion von Mess-Overhead durch Summaries statt Rohtraces.
- Beibehaltung reproduzierbarer Metriken für Regression-Detection.
Methode / Spezifikation
Übersicht:
- trace_agg.py berechnet drei EM-Summary-Metriken pro Job.
- Ein Smoke-Test (N=200) lieferte stabile Werte ±12 % Laufzeitkosten.
- Unit-Tests prüfen Konsistenz der Aggregation, Grenzwerte und Schema-Kompatibilität.
Algorithmen / Verfahren:
- Berechnung median_bandpower über FFT auf verdichteten Sub-Traces.
- peak_amplitude als Maximalwert der Feldstärke in Zeitdomäne.
- crosscorr_with_clockevents über normierte Kreuzkorrelation.
Bootstrap-Übersicht
Resampling der EM-Summary-Metriken über CI-Runs zur Stabilitätsschätzung.
Zielgrößen:
- Varianz
- Konfidenzintervall der Mittelwerte
- Outlier-Rate
Resampling-Setup
- Nightly-Run
- Branch-Build
Stichprobeneinheit: CI-Lauf (1 Durchgang)
Resampling-Schema:
- Bootstrap mit 1000 Iterationen
Konfidenzintervalle:
- Niveau: 0.95
- Typ: percentile-based
- Ableitung: über Bootstrap-Distribution
Abgeleitete Effektgrößen
Risk Difference (Differenz der Raten):
- Definition: Differenz der Outlier-Anteile zwischen Spacer- und Reference-Jobs.
- Bootstrap: Resampling der Jobgruppen mit Rekombination
Risk Ratio:
- Definition: Quotient der Outlier-Wahrscheinlichkeiten zweier Gruppen.
- Bootstrap: Log-Transformation des Verhältnisses zur CI-Schätzung.
C-State-Kontrolle
Ziel: Minimierung systematischer HF-Abweichungen durch CPU-Zustandsvariation.
Vorgehen:
- C-State-Logging pro Run aktivieren.
- Stratifizierte Resampling-Auswertung zur Isolierung der C-State-Effekte.
Input / Output
Input-Anforderungen
Hardware:
- HF-taugliche Messsonde
- geerdeter Spacer
- Embedded-Board mit Clocktrace-Signal
Software:
- trace_agg.py >= 2.3
- Python >= 3.10
- pytest >= 7.0
Konfiguration:
- EM-Summary-Collection = enabled
- Schema-Version = v1
Erwartete Rohdaten
Felder pro Run:
- run_id
- timestamp
- peak_amplitude
- median_bandpower
- crosscorr_with_clockevents
Formatbeispiele:
- 1234, 2024-05-20T12:03, 0.0021, 0.018, 0.63
Trace-Daten:
- Format: kompakte JSON-Summary pro Run
- Hinweis: Keine Volltraces in CI; Rohdaten nur On-Demand.
Analyse-Ausgaben
Pro Gruppe / pro Governor:
- Mittelwert
- Varianz
- Outlier-Anteil
- CI-Intervall
Vergleichsausgaben:
-
mit Spacer vs ohne Spacer
- Δ: -60 % peak_amplitude
- CI(Δ): [−58 %; −63 %]
- RR: 0.38
- CI(RR): [0.34; 0.42]
- Tests: p<0.01
-
C-State-Korrelation: r≈0.5
-
Trace-Muster: HF-Absenkung stabil bei 0.5 mm Spacer
Workflow / Nutzung
Analyse-Workflow:
- Smoke-Test in CI starten (N=200).
- trace_agg.py-Output prüfen.
- Unit-Tests mit pytest ausführen.
- Bootstrap-Auswertung über summary.csv fahren.
- Bericht erstellen (Metriken + CIs).
Trace-Template-Anforderungen
Ziel: Nachverfolgbarkeit der EM-Zusammenfassung und Schema-Gültigkeit pro Commit.
Erforderliche Tags & Metadaten:
- schema_version
- run_id
- board_id
- clocksource_offset
- measurement_env
trace-cmd-Setup:
- trace-cmd record --event em_summary_collect
- sampling_rate = 1/50 runs
- Speicherung ausschließlich von Summary-Feldern
Interpretation & erwartete Ergebnisse
Kernbefunde:
- EM-Summaries zeigen starke Korrelation zu HF-Outliers.
- Spacer-Effekt klar detektierbar über peak_amplitude.
- Kein Einfluss auf clocksource_offset beobachtet.
Implikationen für Experimente:
- EM-Features als standardisierte Diagnose-Metrik in CI-Frameworks.
- Einführung versionierter EM-Schema-Definitionen.
Planungsziel:
- Ziel: Langfristige Integration der EM-Signaldaten zur automatisierten Fehlerdiagnose.
- Vorgehen:
- Unit-Tests als Stabilitätsanker des Messpfads.
- Bootstrap-CI zur statistischen Vergleichbarkeit der Hardwareläufe.
Limitationen & Fallstricke
Datenbezogene Limitationen:
- Summaries können lokale Peaks glätten und Fehlindikationen liefern.
- HF-Messrauschen kann Outlier-Erkennung beeinflussen.
Bootstrap-spezifische Limitationen:
- Nichtstationäre Effekte zwischen Nightly-Runs wirken verzerrend.
- Kleine N pro Gruppe kann CI-Unsicherheit erhöhen.
Kausalität & Generalisierbarkeit:
- Spacer-Effekt nicht zwingend auf andere Boards übertragbar.
- Fehlende Isolation anderer EM-Störquellen.
Praktische Fallstricke:
- 12 % Laufzeitmehrbelastung in CI zu berücksichtigen.
- Parserrobustheit bei inkompletten Fields testen.
- Schema-Version strikt prüfen, um Inkompatibilitäten zu vermeiden.
Nächste Schritte & Erweiterungen
Geplante Experimente:
- Kernel-Trace in isolierter VM mit stratifizierten C-States.
- Vergleich verschiedener EM-Abschirmungen.
Analyseziele:
- Quantifizierung der HF-Störkorrelation mit Systemlatenzen.
- Ableitung neuer Alert-Thresholds für Regressionsprüfungen.
Regression & Modellierung:
- Aufbau eines Regressionsmodells über EM- und Timing-Metriken.
- Integration in CI-Pipeline mit adaptiver Schwellenlogik.
Community-Beiträge:
- Review der verpflichtenden EM-Schemafelder.
- Vorschläge zu Retentionsdauer On-Demand-Rohtraces.
- Standardisierung von Alert-Thresholds im PR-Template.