holdover_test/trace_repo_template
2025-12-06 13:41:17 +00:00
..
README.md Add trace_repo_template/README.md 2025-12-06 13:41:17 +00:00

Trace-Repo-Template und Aggregationsskript für C-State- und Clocksource-Analysen

Purpose

Dokumentvorlage und Skriptstruktur zur Analyse von CPU-Governor-Einflüssen auf C-State-Residency und Clocksource-Wechsel über lange Testzeiträume.

Problemstellung: Unterschiede im CPU-Governor-Verhalten über einen 24hTestzeitraum verursachen OutlierCluster, deren Korrelation mit CState und ClocksourceMetriken reproduzierbar dokumentiert werden soll.

Ziele:

  • Einheitliche Trace-Struktur für C-State-Analysen
  • Automatisierte Aggregation von Clocksource-Wechselereignissen
  • Vergleich von Governor-Profilen über gleichartige Runs

Kontext & Hintergrund

Langzeit-Traces von CPUCStates, ClocksourceWechseln und EMMessungen über 24hRuns unter verschiedenen CPUGovernoren.

Gruppierung:

  • powersave
  • performance

Trace-Metadaten / zusätzliche Tags:

  • timestamp
  • cstate_level
  • clocksource_event
  • governor_mode
  • event_latency

Domänenkontext:

  • CPU power management
  • kernel scheduler behavior
  • BPF tracing
  • bootstrap analysis

Outlier-Definition:

  • Methode: Bootstrap-basiertes Resampling und MannWhitneyTest
  • Beschreibung: Outlier werden als Messungen außerhalb des 95%-Konfidenzintervalls der Referenzgruppe definiert.
  • Metrik: Benchmark-Latenzabweichung pro Lauf

Motivation:

  • Überprüfung des GovernorEffekts über lange Zeiträume
  • Quantifizierung der CStateEinflüsse auf Stabilität
  • Ausschluss elektrischer Störeinflüsse

Methode / Spezifikation

Übersicht:

  • Vergleich der OutlierRaten zwischen powersave und performance Governors über 24h
  • Analyse der C3Residency im 01000msFenster vor Events
  • Auswertung von clocksource_switchBPFTraces

Algorithmen / Verfahren:

  • BootstrapResampling mit 10000 Iterationen, Ermittlung von 95%Konfidenzintervallen
  • Differenz von Anteilen (OutlierRaten) zwischen Gruppen
  • RisikoquotientSchätzung (risk ratio)
  • Nonparametrische Signifikanztests mittels MannWhitneyU

Bootstrap-Übersicht

Nichtparametrisches Resampling über OutlierMessungen pro GovernorGruppe.

Zielgrößen:

  • OutlierAnteil
  • MedianResidency C3
  • clocksource_switchRate

Resampling-Setup

  • powersave
  • performance

Stichprobeneinheit: Einzelner BenchmarkLauf

Resampling-Schema:

  • 10000 Iterationen
  • Mit Zurücklegen
  • Gruppenweise Resamples

Konfidenzintervalle:

  • Niveau: 0.95
  • Typ: Percentilbasiert
  • Ableitung: Empirisch aus BootstrapVerteilung

Abgeleitete Effektgrößen

Risk Difference (Differenz der Raten):

  • Definition: Differenz der OutlierRaten zwischen Governors.
  • Bootstrap: BootstrapVerteilung der Anteilsdifferenz, CI über Percentile.

Risk Ratio:

  • Definition: Verhältnis der OutlierWahrscheinlichkeiten zwischen powersave und performance.
  • Bootstrap: Resampling der Quotenverteilung und CISchätzung über logTransformation.

C-State-Kontrolle

Ziel: Validierung des Einflusses tiefer CStates auf OutlierRate.

Vorgehen:

  • Zusätzlicher Kontrolllauf mit powersave, C0/C1only
  • Vergleich OutlierRate gegenüber performance
  • Analyse CStateResidencyReduktion

Input / Output

Input-Anforderungen

Hardware:

  • x86Laptop mit stabiler Stromversorgung
  • konstante Umgebungstemperatur

Software:

  • LinuxKernel mit BPFUnterstützung
  • tracecmd
  • PythonBootstrapAuswerteskript

Konfiguration:

  • Governor festgesetzt (powersave oder performance)
  • clocksource KernelTrace aktiviert

Erwartete Rohdaten

Felder pro Run:

  • timestamp
  • latency_ms
  • cstate
  • clocksource_event_count
  • governor
  • run_id

Formatbeispiele:

  • 20241201T06:00:00Z, 2.35ms, C3, 1, powersave, run_01

Trace-Daten:

  • Format: FTRACE/BPFEvents im Text oder JSONExportformat
  • Hinweis: Jede Zeile enthält EventTimestamp und CStateWechselkennung.

Analyse-Ausgaben

Pro Gruppe / pro Governor:

  • OutlierRate (%)
  • MedianC3Residency (ms)
  • clocksource_switchEvents pro Benchmark

Vergleichsausgaben:

  • powersave vs performance

    • Δ: ≈18Prozentpunkte
    • CI(Δ): [~12,24]
    • RR: ≈4.1
    • CI(RR): [~2.0,6.8]
    • Tests: ≈0.003
  • C-State-Korrelation: ResidencyZunahme in C3 korreliert mit OutlierHäufungen.

  • Trace-Muster: CStateExit gefolgt von clocksource_switchEvent innerhalb 20200ms.

Workflow / Nutzung

Analyse-Workflow:

  • Traces erfassen mit tracecmd oder BPFProgrammen
  • Aggregationsskript aus Template anwenden
  • BootstrapAnalyse der OutlierRaten durchführen
  • Ergebnisse in GruppenReport konsolidieren

Trace-Template-Anforderungen

Ziel: Standardisierte Aufnahme und Auswertung von CStateResidency und ClocksourceWechseln.

Erforderliche Tags & Metadaten:

  • governor
  • timestamp
  • cstate
  • clocksource_event
  • latency_ms

trace-cmd-Setup:

  • tracecmd record e power/cpu_idle e clockevents/clock_*
  • BPFTracing optional für clocksource_switch aktivieren

Run-Design für Contributors:

  • Identische HardwareParameter pro Lauf beibehalten
  • Getrennte Runs für powersave und performance
  • Laufzeit mindestens 24h pro Konfiguration

Interpretation & erwartete Ergebnisse

Kernbefunde:

  • GovernorEffekt bleibt über 24h stabil nachweisbar.
  • powersave zeigt erhöhte OutlierRaten und tiefere CStates.
  • CStateExits stehen in zeitlicher Nähe zu clocksource_switchEvents.

Implikationen für Experimente:

  • GovernorWahl beeinflusst zeitliche Stabilität von Benchmarks.
  • CStateManagement ist kritischer Faktor bei Latenzanalysen.

Planungsziel:

  • Ziel: Reduktion der OutlierRate durch gezielte CStateBegrenzung.
  • Vorgehen:
    • Kontrolllauf mit C0/C1OnlyRegime
    • Analyse, ob OutlierRate auf performanceNiveau absinkt

Limitationen & Fallstricke

Datenbezogene Limitationen:

  • LangzeitTest unterliegt Temperatur und Spannungsdrift.
  • Spätere Tageszyklen können Einfluss auf SystemThermik haben.

Bootstrap-spezifische Limitationen:

  • Abhängigkeit der CIs von der Stichprobengröße.
  • BootstrapVerteilungen können bei kleinen N verzerrt sein.

Kausalität & Generalisierbarkeit:

  • Beobachtete Korrelationen nicht zwingend kausal.
  • Ergebnisse spezifisch für getestete Hardware/KernelVersion.

Praktische Fallstricke:

  • Falsche Governorumschaltung während Testlauf verfälscht Ergebnis.
  • Nichtsynchronisierte Traces erschweren Zuordnung von Events.

Nächste Schritte & Erweiterungen

Geplante Experimente:

  • Kontrolllauf mit powersave (nur C0/C1 erlaubt).

Analyseziele:

  • Quantitative Validierung des Einflusses tiefer CStates auf OutlierRaten.

Regression & Modellierung:

  • Modellierung der OutlierWahrscheinlichkeit als Funktion der CStateResidency.

Community-Beiträge:

  • TemplateBereitstellung im TraceRepository für ReplikationsExperimente.