clocksource_switch_benchmark/README.md
2025-12-03 13:45:00 +00:00

24 lines
1.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).