Add trace_repo_template/README.md

This commit is contained in:
Mika 2025-12-06 13:41:17 +00:00
parent 690e09a61e
commit b51c89ccaa

View file

@ -0,0 +1,230 @@
# 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.