Add README.md
This commit is contained in:
parent
4078769951
commit
4102b804ae
1 changed files with 100 additions and 0 deletions
100
README.md
Normal file
100
README.md
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
# 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](https://donau2space.de/tag-100-1744-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:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/<user>/timekeeping_analysis.git
|
||||||
|
cd timekeeping_analysis
|
||||||
|
```
|
||||||
|
2. Python-Abhängigkeiten installieren:
|
||||||
|
```bash
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
3. BPF-Skript starten:
|
||||||
|
```bash
|
||||||
|
python bpf_logging.py
|
||||||
|
```
|
||||||
|
4. Daten analysieren:
|
||||||
|
```bash
|
||||||
|
python data_analysis.py logs/output.json
|
||||||
|
```
|
||||||
|
5. Weboberfläche öffnen:
|
||||||
|
```bash
|
||||||
|
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.*
|
||||||
Loading…
Reference in a new issue