| .. | ||
| README.md | ||
Template für C-State-Logging mit trace-cmd und BPF-Tracing
Purpose
Beschreibung eines Templates zur konsistenten Erfassung von CPU-C-State-Residencies und Governor-Metadaten im Rahmen von Mikrobenchmark-Analysen.
Problemstellung: Unterschiedliche CPU-Governor- und C-State-Konfigurationen beeinflussen Messungen von Latenz und Stabilität; eine standardisierte Logging-Vorlage ermöglicht Vergleichbarkeit und Integration von Trace-Daten in Bootstrap-basierte Auswertungen.
Ziele:
- Sicherstellen reproduzierbarer C-State-Log-Erhebung unter Linux
- Unterstützung der Bootstrap-Analyse von Outlier-Raten in Abhängigkeit des Governors
- Bereitstellung einer strukturierten Vorlage für Community-Beiträge
Kontext & Hintergrund
Benchmark-Läufe (~240 Runs), gruppiert nach CPU-Governor mit Outlier-Markierung und C-State-Metadaten.
Gruppierung:
- powersave
- performance
Trace-Metadaten / zusätzliche Tags:
- C-State-Residency-Tags
- Governor-Name
- Zeitstempel
Domänenkontext:
- Linux CPU power management
- Governor tuning
- Outlier detection in performance benchmarks
Outlier-Definition:
- Methode: Median/IQR-basiert
- Beschreibung: Ein Run gilt als Outlier, wenn sein Messwert außerhalb des 1.5*IQR-Fensters um den Median der Gruppe liegt.
- Metrik: Benchmark Response Time / Execution Time
Motivation:
- Quantifizierung der Stabilitätsunterschiede zwischen Governors
- Integration von C-State-Informationen zur Reduktion systematischer Fehlklassifikationen
Methode / Spezifikation
Übersicht:
- Bootstrap-basierte Resampling-Analyse der Outlier-Anteile pro Governor.
- Verwendung von trace-cmd und BPF-Tracing zur Erfassung von C-State-Residency-Metadaten.
- Kontrolle eingehender Logs auf korrekte Governor-Zuordnung.
Algorithmen / Verfahren:
- 10.000 Bootstrap-Resamples der Outlier-Anteile pro Governor-Gruppe.
- Berechnung der 95%-Konfidenzintervalle der geschätzten Outlier-Rate.
- Bestimmung der Differenz der Outlier-Anteile und der Risk-Ratio mit eigenen Bootstrap-Intervallen.
Bootstrap-Übersicht
Nichtparametrische Resampling-Methode zur Schätzung von Verteilungen und Konfidenzintervallen aus empirischen Daten.
Zielgrößen:
- Outlier-Anteil pro Governor
- Differenz der Anteile
- Risk Ratio
Resampling-Setup
- powersave
- performance
Stichprobeneinheit: Benchmark-Run
Resampling-Schema:
- Zufälliges Ziehen von N Stichproben pro Gruppe mit Zurücklegen, N = Gruppengröße
Konfidenzintervalle:
- Niveau: 0.95
- Typ: percentile
- Ableitung: aus 10.000 Bootstrap-Samples
Abgeleitete Effektgrößen
Risk Difference (Differenz der Raten):
- Definition: Differenz der Outlier-Anteile zwischen powersave und performance.
- Bootstrap: Verteilung der Differenzen aus gepaarten Bootstrap-Samples.
Risk Ratio:
- Definition: Quotient der Outlier-Anteile (powersave/performance).
- Bootstrap: Log-transformierte Bootstrap-Verteilung zur Stabilisierung der Schätzvarianz.
C-State-Kontrolle
Ziel: Sicherstellung, dass Runs identische C-State-Muster je Governor aufweisen.
Vorgehen:
- Erfassung der CPU-C-State-Residencies per BPF oder trace-cmd plugin powermgmt
- Tagging in Trace-Metadaten
- Filterung fehlerhafter oder unzureichend annotierter Runs
Input / Output
Input-Anforderungen
Hardware:
- Linux-System mit CPU-Governor-Support
- Trace-fähiger Kernel (ftrace, BPF, trace-cmd)
Software:
- trace-cmd ≥ v2.9
- BPF-Tooling (bcc oder bpftrace)
- Python für Bootstrap-Auswertung
Konfiguration:
- Aktiver Governor über cpufreq-set
- C-State-Logging mit trace-cmd record --event power:* oder angepassten BPF-Probes
Erwartete Rohdaten
Felder pro Run:
- timestamp
- governor
- metric_value
- outlier_flag
- cstate_residencies
Formatbeispiele:
- 2024-02-12T10:15:33Z, performance, 5.62, 0, {C1=23%,C2=77%}
Trace-Daten:
- Format: FTRACE/trace-cmd binary (.dat) mit BPF-Erweiterungen
- Hinweis: Muss C-State-Events und Governor-Tag enthalten.
Analyse-Ausgaben
Pro Gruppe / pro Governor:
- Outlier-Rate
- 95%-Konfidenzintervall
- Mean/Median Execution Time
Vergleichsausgaben:
-
powersave vs performance
- Δ: ≈19.0 [10.1, 28.7]
- CI(Δ): [10.1, 28.7]
- RR: ≈4.3
- CI(RR): [2.0, 9.6]
- Tests: Mann-Whitney p≈0.006
-
C-State-Korrelation: Analyse des Zusammenhangs zwischen C-State-Tiefe und Outlier-Wahrscheinlichkeit
-
Trace-Muster: Erkennung wiederkehrender Idle-State-Übergänge in powersave-Modi
Workflow / Nutzung
Analyse-Workflow:
- trace-cmd record starten mit Governor-Tag und C-State-Erfassung
- Benchmark-Run durchführen
- trace-cmd report erstellen
- Parsing der Metadaten in tabellarisches Format
- Bootstrap-Resampling pro Gruppe ausführen
- Statistische Kennzahlen und Intervalle berechnen
Trace-Template-Anforderungen
Ziel: Standardisierte Erhebung für vergleichbare Analysen zwischen Systemen
Erforderliche Tags & Metadaten:
- governor
- timestamp
- benchmark_id
- cstate_residencies
trace-cmd-Setup:
- trace-cmd record -e power --buffer-size=32768 --date --output=run.dat
- Erweiterung durch BPF-Probe für cpu_idle_enter/exit zur C-State-Auflösung
Run-Design für Contributors:
- Paare aus jeweils einem powersave- und einem performance-Run unter identischen Bedingungen
- Mindestens 50 gepaarte Runs zur Bootstrap-Auswertung
Interpretation & erwartete Ergebnisse
Kernbefunde:
- powersave zeigt etwa vierfach erhöhte Outlier-Wahrscheinlichkeit gegenüber performance
- Bootstrap-Konfidenzintervalle überschneiden sich nicht zwischen Gruppen
- Konsistenz zwischen Bootstrap- und Mann-Whitney-Ergebnissen
Implikationen für Experimente:
- C-State und Governor müssen in weiteren Performance-Analysen als feste Kovariaten behandelt werden
- Geplante Replikation mit 24h-Holdover-Setup zur Stabilitätsprüfung
Planungsziel:
- Ziel: Präzisierung der Schätzgenauigkeit in späteren Runs
- Vorgehen:
- Stichprobenumfang planen, sodass CI-Breite ±3 Prozentpunkte beträgt
- Fixierte Governor-Konfigurationen im Dauerbetrieb testen
Limitationen & Fallstricke
Datenbezogene Limitationen:
- Begrenzte Run-Anzahl kann Bootstrap-Schätzfehler erhöhen
- Ungenügende C-State-Annotation führt zu Fehlklassifikation
Bootstrap-spezifische Limitationen:
- Nichtparametrische Resampling-Fehler bei stark ungleichen Gruppen
- Abhängigkeit von der Varianzstruktur der Originaldaten
Kausalität & Generalisierbarkeit:
- Korrelation, keine kausale Beweisführung für Governor-Effekte
- Hardware-spezifische C-State-Implementierung limitiert Generalisierbarkeit
Praktische Fallstricke:
- Fehlende Synchronisation von Loggerzeitstempeln bei Multi-Core-Benchmarks
- Unzureichende Buffer-Größe führt zu verlorenen Trace-Ereignissen
Nächste Schritte & Erweiterungen
Geplante Experimente:
- 24h Holdover-Test für beide Governor-Konfigurationen mit vollständigem C-State-Logging
- BPF-basierte Echtzeit-Analyse von C-State-Residency während Lastumschaltungen
Analyseziele:
- Replikation der Bootstrap-Effekte unter stabileren Bedingungen
- Ableitung von Varianzmodellen für Governor-Wechsel
Regression & Modellierung:
- Logistische Regression der Outlier-Wahrscheinlichkeit vs. C-State-Residency
- Nichtlineare Modelle zur Quantifizierung des Stromspar-Verzögerungseinflusses
Community-Beiträge:
- Bereitstellung eines Repo-Templates für Mitwirkende
- Sammeln anonymer governor-getaggter Traces zur Meta-Analyse