24 lines
1.2 KiB
Markdown
24 lines
1.2 KiB
Markdown
# Tracepoint Integration Overview
|
||
|
||
## Ziel
|
||
Der Patch ergänzt `do_clocksource_switch()` um einen Tracepoint, der drei Timestamps (Switch, Baseline-Recalc, Read) erfasst. Damit lassen sich Race-Zustände zwischen Veröffentlichung der neuen Clocksource und dem ersten `read()` quantifizieren.
|
||
|
||
## Anwendung
|
||
1. Patch anwenden und Kernel neu bauen/installieren.
|
||
2. Tracing aktivieren, z. B.:
|
||
```bash
|
||
trace-cmd record -e clocksource_switch:clocksource_switch_latency sleep 5
|
||
trace-cmd report
|
||
```
|
||
3. Die Ausgabe liefert die Nanosekundenwerte der drei Messpunkte pro Switch.
|
||
|
||
## Datenfelder (`struct trace_point_data`)
|
||
| Feld | Beschreibung |
|
||
| --- | --- |
|
||
| `timestamp_switch` | Zeitpunkt des eigentlichen Clocksource-Switches. |
|
||
| `timestamp_baseline_recalc` | Zeitpunkt, an dem die neue Baseline fertig berechnet ist. |
|
||
| `timestamp_read` | Zeitpunkt des ersten Clocksource-Reads nach dem Switch. |
|
||
|
||
## Hinweise
|
||
- Fehlende Messpunkte werden automatisch mit dem zuletzt bekannten Timestamp aufgefüllt, damit der Tracepoint stets vollständige Daten liefert.
|
||
- Ideal für Benchmarks, die Reihenfolge und Latenz zwischen Switch/Baseline/Readoffset analysieren sollen (z. B. C-State- oder Governor-Experimente).
|