bootstrap_analysis/cstate_logging_template/README.md

7.4 KiB

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