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

24 lines
1.2 KiB
Markdown
Raw Permalink 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).