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