Add trace_repo_template/README.md
This commit is contained in:
parent
690e09a61e
commit
b51c89ccaa
1 changed files with 230 additions and 0 deletions
230
trace_repo_template/README.md
Normal file
230
trace_repo_template/README.md
Normal 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 24‑h‑Testzeitraum verursachen Outlier‑Cluster, deren Korrelation mit C‑State‑ und Clocksource‑Metriken 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 CPU‑C‑States, Clocksource‑Wechseln und EM‑Messungen über 24‑h‑Runs unter verschiedenen CPU‑Governoren.
|
||||||
|
|
||||||
|
**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 Mann‑Whitney‑Test
|
||||||
|
- Beschreibung: Outlier werden als Messungen außerhalb des 95 %-Konfidenzintervalls der Referenzgruppe definiert.
|
||||||
|
- Metrik: Benchmark-Latenzabweichung pro Lauf
|
||||||
|
|
||||||
|
**Motivation:**
|
||||||
|
- Überprüfung des Governor‑Effekts über lange Zeiträume
|
||||||
|
- Quantifizierung der C‑State‑Einflüsse auf Stabilität
|
||||||
|
- Ausschluss elektrischer Störeinflüsse
|
||||||
|
|
||||||
|
## Methode / Spezifikation
|
||||||
|
|
||||||
|
**Übersicht:**
|
||||||
|
- Vergleich der Outlier‑Raten zwischen powersave und performance Governors über 24 h
|
||||||
|
- Analyse der C3‑Residency im 0–1000 ms‑Fenster vor Events
|
||||||
|
- Auswertung von clocksource_switch‑BPF‑Traces
|
||||||
|
|
||||||
|
**Algorithmen / Verfahren:**
|
||||||
|
- Bootstrap‑Resampling mit 10 000 Iterationen, Ermittlung von 95 %‑Konfidenzintervallen
|
||||||
|
- Differenz von Anteilen (Outlier‑Raten) zwischen Gruppen
|
||||||
|
- Risikoquotient‑Schätzung (risk ratio)
|
||||||
|
- Nonparametrische Signifikanztests mittels Mann‑Whitney‑U
|
||||||
|
|
||||||
|
### Bootstrap-Übersicht
|
||||||
|
|
||||||
|
Nichtparametrisches Resampling über Outlier‑Messungen pro Governor‑Gruppe.
|
||||||
|
|
||||||
|
**Zielgrößen:**
|
||||||
|
- Outlier‑Anteil
|
||||||
|
- Median‑Residency C3
|
||||||
|
- clocksource_switch‑Rate
|
||||||
|
|
||||||
|
### Resampling-Setup
|
||||||
|
|
||||||
|
- powersave
|
||||||
|
- performance
|
||||||
|
|
||||||
|
**Stichprobeneinheit:** Einzelner Benchmark‑Lauf
|
||||||
|
|
||||||
|
**Resampling-Schema:**
|
||||||
|
- 10 000 Iterationen
|
||||||
|
- Mit Zurücklegen
|
||||||
|
- Gruppenweise Resamples
|
||||||
|
|
||||||
|
**Konfidenzintervalle:**
|
||||||
|
- Niveau: 0.95
|
||||||
|
- Typ: Percentilbasiert
|
||||||
|
- Ableitung: Empirisch aus Bootstrap‑Verteilung
|
||||||
|
|
||||||
|
### Abgeleitete Effektgrößen
|
||||||
|
|
||||||
|
**Risk Difference (Differenz der Raten):**
|
||||||
|
- Definition: Differenz der Outlier‑Raten zwischen Governors.
|
||||||
|
- Bootstrap: Bootstrap‑Verteilung der Anteilsdifferenz, CI über Percentile.
|
||||||
|
|
||||||
|
**Risk Ratio:**
|
||||||
|
- Definition: Verhältnis der Outlier‑Wahrscheinlichkeiten zwischen powersave und performance.
|
||||||
|
- Bootstrap: Resampling der Quotenverteilung und CI‑Schätzung über log‑Transformation.
|
||||||
|
|
||||||
|
### C-State-Kontrolle
|
||||||
|
|
||||||
|
**Ziel:** Validierung des Einflusses tiefer C‑States auf Outlier‑Rate.
|
||||||
|
|
||||||
|
**Vorgehen:**
|
||||||
|
- Zusätzlicher Kontrolllauf mit powersave, C0/C1‑only
|
||||||
|
- Vergleich Outlier‑Rate gegenüber performance
|
||||||
|
- Analyse C‑State‑Residency‑Reduktion
|
||||||
|
|
||||||
|
## Input / Output
|
||||||
|
|
||||||
|
### Input-Anforderungen
|
||||||
|
|
||||||
|
**Hardware:**
|
||||||
|
- x86‑Laptop mit stabiler Stromversorgung
|
||||||
|
- konstante Umgebungstemperatur
|
||||||
|
|
||||||
|
**Software:**
|
||||||
|
- Linux‑Kernel mit BPF‑Unterstützung
|
||||||
|
- trace‑cmd
|
||||||
|
- Python‑Bootstrap‑Auswerteskript
|
||||||
|
|
||||||
|
**Konfiguration:**
|
||||||
|
- Governor festgesetzt (powersave oder performance)
|
||||||
|
- clocksource Kernel‑Trace aktiviert
|
||||||
|
|
||||||
|
### Erwartete Rohdaten
|
||||||
|
|
||||||
|
**Felder pro Run:**
|
||||||
|
- timestamp
|
||||||
|
- latency_ms
|
||||||
|
- cstate
|
||||||
|
- clocksource_event_count
|
||||||
|
- governor
|
||||||
|
- run_id
|
||||||
|
|
||||||
|
**Formatbeispiele:**
|
||||||
|
- 2024‑12‑01T06:00:00Z, 2.35 ms, C3, 1, powersave, run_01
|
||||||
|
|
||||||
|
**Trace-Daten:**
|
||||||
|
- Format: FTRACE/BPF‑Events im Text‑ oder JSON‑Exportformat
|
||||||
|
- Hinweis: Jede Zeile enthält Event‑Timestamp und C‑State‑Wechselkennung.
|
||||||
|
|
||||||
|
### Analyse-Ausgaben
|
||||||
|
|
||||||
|
**Pro Gruppe / pro Governor:**
|
||||||
|
- Outlier‑Rate (%)
|
||||||
|
- Median‑C3‑Residency (ms)
|
||||||
|
- clocksource_switch‑Events pro Benchmark
|
||||||
|
|
||||||
|
**Vergleichsausgaben:**
|
||||||
|
- powersave vs performance
|
||||||
|
- Δ: ≈18 Prozentpunkte
|
||||||
|
- CI(Δ): [~12, 24]
|
||||||
|
- RR: ≈4.1
|
||||||
|
- CI(RR): [~2.0, 6.8]
|
||||||
|
- Tests: ≈0.003
|
||||||
|
|
||||||
|
- C-State-Korrelation: Residency‑Zunahme in C3 korreliert mit Outlier‑Häufungen.
|
||||||
|
- Trace-Muster: C‑State‑Exit gefolgt von clocksource_switch‑Event innerhalb 20–200 ms.
|
||||||
|
|
||||||
|
## Workflow / Nutzung
|
||||||
|
|
||||||
|
**Analyse-Workflow:**
|
||||||
|
- Traces erfassen mit trace‑cmd oder BPF‑Programmen
|
||||||
|
- Aggregationsskript aus Template anwenden
|
||||||
|
- Bootstrap‑Analyse der Outlier‑Raten durchführen
|
||||||
|
- Ergebnisse in Gruppen‑Report konsolidieren
|
||||||
|
|
||||||
|
### Trace-Template-Anforderungen
|
||||||
|
|
||||||
|
**Ziel:** Standardisierte Aufnahme und Auswertung von C‑State‑Residency und Clocksource‑Wechseln.
|
||||||
|
|
||||||
|
**Erforderliche Tags & Metadaten:**
|
||||||
|
- governor
|
||||||
|
- timestamp
|
||||||
|
- cstate
|
||||||
|
- clocksource_event
|
||||||
|
- latency_ms
|
||||||
|
|
||||||
|
**trace-cmd-Setup:**
|
||||||
|
- trace‑cmd record ‑e power/cpu_idle ‑e clockevents/clock_*
|
||||||
|
- BPF‑Tracing optional für clocksource_switch aktivieren
|
||||||
|
|
||||||
|
**Run-Design für Contributors:**
|
||||||
|
- Identische Hardware‑Parameter pro Lauf beibehalten
|
||||||
|
- Getrennte Runs für powersave und performance
|
||||||
|
- Laufzeit mindestens 24 h pro Konfiguration
|
||||||
|
|
||||||
|
## Interpretation & erwartete Ergebnisse
|
||||||
|
|
||||||
|
**Kernbefunde:**
|
||||||
|
- Governor‑Effekt bleibt über 24 h stabil nachweisbar.
|
||||||
|
- powersave zeigt erhöhte Outlier‑Raten und tiefere C‑States.
|
||||||
|
- C‑State‑Exits stehen in zeitlicher Nähe zu clocksource_switch‑Events.
|
||||||
|
|
||||||
|
**Implikationen für Experimente:**
|
||||||
|
- Governor‑Wahl beeinflusst zeitliche Stabilität von Benchmarks.
|
||||||
|
- C‑State‑Management ist kritischer Faktor bei Latenzanalysen.
|
||||||
|
|
||||||
|
**Planungsziel:**
|
||||||
|
- Ziel: Reduktion der Outlier‑Rate durch gezielte C‑State‑Begrenzung.
|
||||||
|
- Vorgehen:
|
||||||
|
- Kontrolllauf mit C0/C1‑Only‑Regime
|
||||||
|
- Analyse, ob Outlier‑Rate auf performance‑Niveau absinkt
|
||||||
|
|
||||||
|
## Limitationen & Fallstricke
|
||||||
|
|
||||||
|
**Datenbezogene Limitationen:**
|
||||||
|
- Langzeit‑Test unterliegt Temperatur‑ und Spannungsdrift.
|
||||||
|
- Spätere Tageszyklen können Einfluss auf System‑Thermik haben.
|
||||||
|
|
||||||
|
**Bootstrap-spezifische Limitationen:**
|
||||||
|
- Abhängigkeit der CIs von der Stichprobengröße.
|
||||||
|
- Bootstrap‑Verteilungen können bei kleinen N verzerrt sein.
|
||||||
|
|
||||||
|
**Kausalität & Generalisierbarkeit:**
|
||||||
|
- Beobachtete Korrelationen nicht zwingend kausal.
|
||||||
|
- Ergebnisse spezifisch für getestete Hardware/Kernel‑Version.
|
||||||
|
|
||||||
|
**Praktische Fallstricke:**
|
||||||
|
- Falsche Governorumschaltung während Testlauf verfälscht Ergebnis.
|
||||||
|
- Nicht‑synchronisierte Traces erschweren Zuordnung von Events.
|
||||||
|
|
||||||
|
## Nächste Schritte & Erweiterungen
|
||||||
|
|
||||||
|
**Geplante Experimente:**
|
||||||
|
- Kontrolllauf mit powersave (nur C0/C1 erlaubt).
|
||||||
|
|
||||||
|
**Analyseziele:**
|
||||||
|
- Quantitative Validierung des Einflusses tiefer C‑States auf Outlier‑Raten.
|
||||||
|
|
||||||
|
**Regression & Modellierung:**
|
||||||
|
- Modellierung der Outlier‑Wahrscheinlichkeit als Funktion der C‑State‑Residency.
|
||||||
|
|
||||||
|
**Community-Beiträge:**
|
||||||
|
- Template‑Bereitstellung im Trace‑Repository für Replikations‑Experimente.
|
||||||
Loading…
Reference in a new issue