| bpf_logging | ||
| trace_visualization | ||
| LICENCE.md | ||
| README.md | ||
Timekeeping Analysis
Überblick
Das Projekt timekeeping_analysis untersucht die Auswirkungen von WF_MIGRATED auf die Zeitmessung und das Scheduling im Linux-Kernel. Hierfür wird BPF eingesetzt, um präzise Logging-Mechanismen für relevante Kernel-Events zu realisieren. Die erhobenen Daten werden anschließend analysiert und visuell aufbereitet.
Weitere Hintergrundinformationen finden sich im Artikel: Erster Tick im Blick – rq->clock, first_tkread macht WF_MIGRATED messbar
Hinweis
Alle Inhalte wurden per KI generiert.
Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich auf eigenes Risiko. Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert.
Inhalt des Repositories
Das Repository besteht aus mehreren Artefakten zur Erfassung, Analyse und Visualisierung von Zeitmessdaten im Zusammenhang mit WF_MIGRATED.
Artefakt-Liste
1. bpf_logging
- Art: Python-Skript
- Ziel: Linux-Userspace
- Sprachen: Python
- Zweck: Implementiert BPF-Logging zur Erfassung von
first_tkreadundrq->clock. - API-Funktionen:
setup_bpf_logging(correlation_id)– Initialisiert das BPF-Logging für eine Korrelations-ID.log_timekeeping_event(event_type, correlation_id)– Protokolliert ein Zeitmess-Event.
- Datenstruktur:
log_entry(JSON)- Felder:
correlation_id,event_type,timestamp
- Felder:
2. data_analysis
- Art: Python-Skript
- Ziel: Linux-Userspace
- Sprachen: Python
- Zweck: Analysiert Zeitmessdaten und bestimmt die Zeitdifferenzen zwischen relevanten Kernel-Events (
ttwuundfirst_tkread). - API-Funktionen:
analyze_log_data(log_file)– Analysiert ein Logfile und gibt statistische Ergebnisse zurück.
- Datenstruktur:
analysis_result(JSON)- Felder:
total_migrated,total_non_migrated,median_time_diff
- Felder:
3. trace_visualization
- Art: Web-UI
- Ziel: Web
- Sprachen: HTML, CSS, JavaScript
- Zweck: Stellt grafische Auswertungen der gesammelten Trace-Daten dar.
- API-Endpunkte:
GET /api/get-analysis– Liefert Analyseergebnisse zur Darstellung im Browser.
- JavaScript-Module:
chart.js– Wird zur Diagrammerstellung verwendet.
Installation & Nutzung
Voraussetzungen
- Linux-Umgebung mit BPF-Unterstützung
- Python 3.8 oder höher
- Webbrowser für Visualisierung
Installation
- Repository klonen:
git clone https://github.com/<user>/timekeeping_analysis.git cd timekeeping_analysis - Python-Abhängigkeiten installieren:
pip install -r requirements.txt - BPF-Skript starten:
python bpf_logging.py - Daten analysieren:
python data_analysis.py logs/output.json - Weboberfläche öffnen:
open trace_visualization/index.html
Typische Use-Cases
- Untersuchung von Scheduling-Verhalten bei Task-Migrationen.
- Analyse von Zeitdifferenzen zwischen Kernel-Ereignissen.
- Visualisierung von Zeitmessdaten im Browser.
Struktur & Erweiterbarkeit
- bpf_logging.py: Logging-Komponente für Kernel-Events.
- data_analysis.py: Analytikmodul für Logdaten.
- trace_visualization/: Weboberfläche für grafische Darstellung.
Das Projekt kann um weitere BPF-Proben, Webmodule oder Metriken erweitert werden.
Lizenz
Dieses Projekt steht unter der MIT-Lizenz.
Dieses Repository wurde automatisiert generiert. Nutzung auf eigene Gefahr.