timekeeping_analysis/README.md
2025-12-27 16:53:28 +00:00

3.5 KiB
Raw Permalink Blame History

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_tkread und rq->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

2. data_analysis

  • Art: Python-Skript
  • Ziel: Linux-Userspace
  • Sprachen: Python
  • Zweck: Analysiert Zeitmessdaten und bestimmt die Zeitdifferenzen zwischen relevanten Kernel-Events (ttwu und first_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

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

  1. Repository klonen:
    git clone https://github.com/<user>/timekeeping_analysis.git
    cd timekeeping_analysis
    
  2. Python-Abhängigkeiten installieren:
    pip install -r requirements.txt
    
  3. BPF-Skript starten:
    python bpf_logging.py
    
  4. Daten analysieren:
    python data_analysis.py logs/output.json
    
  5. 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.