Chemenu 2.1.0 - deterministischer Wissenskompiler
CI / verify (push) Failing after 32s
Release / release (push) Successful in 38s

Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki:
raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht
tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren
Grenzen in Code durchgesetzt sind statt im Prompt.

Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige
Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses
Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44
Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist.

Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den
Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er
dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs.

Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte.
Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet -
siehe NOTICE.
This commit is contained in:
2026-09-01 16:24:34 +02:00
commit 18ae28f918
368 changed files with 50628 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
# kb/comparisons/ - Collection Contract
Structured head-to-head evaluations of two or more things that already have pages here. A
comparison exists so that neither subject's own page has to argue against the other.
**Quality goal:** decidability - a reader with a concrete situation should be able to choose.
That needs named, checkable dimensions and a stated trade-off; a page that lists differences
without saying what they cost has described, not compared.
Inherits [kb/CONTRACT.md](../CONTRACT.md) - naming, tone, linking, provenance and confidence
are defined there and are not restated here.
## Types offered
`comparison` (`tools/wikitool types describe comparison`).
## Naming
The title reads as a comparison: `Go vs Rust.md`, `Traefik vs nginx.md`. Order the subjects as
they are most commonly spoken, not alphabetically.
## Requirements
- **Every subject must already have its own page.** A comparison is a view over existing
knowledge, not a place to introduce it. Create the entity or concept pages first, then
compare them.
- Compare on stated, checkable dimensions - a table with one row per dimension, one column per
subject. Cite hard facts the same way any other page does.
- State the trade-off, not a winner. Where a recommendation is genuinely warranted, scope it:
"for X workload", not "better".
## Outbound linking
A comparison links to every subject with `related to`, and each subject links back. Comparison
pages are **exempt from the orphan check** - they are reached through `index.md` rather than
through inbound prose links.
## What does not belong here
- A comparison of things this wiki does not otherwise cover.
- Feature-matrix dumps copied from a vendor page. If the material is a source, ingest it as one
and compile the comparison from it.
+12
View File
@@ -0,0 +1,12 @@
<!-- Generated by `wikitool index rebuild`. Do not hand-edit. -->
# kb/comparisons/ - Index
1 page(s). Regenerated by `wikitool index rebuild`.
## All
| Page | Type | Summary | Last Modified |
|------|------|---------|----------------|
| [[amd-pstate vs acpi-cpufreq]] | comparison | Vergleich zweier AMD-CPU-Power-Management-Treiber: CPPC-basiertes amd-pstate gegenüber ACPI-basiertem acpi-cpufreq. | 2026-07-31 |
@@ -0,0 +1,143 @@
---
type: types/comparison.md
tags: [kernel, power-management, amd, cpu, driver]
created: 2026-07-31
entities: [amd-pstate, acpi-cpufreq]
summary: "Vergleich zweier AMD-CPU-Power-Management-Treiber: CPPC-basiertes amd-pstate gegen\xFC\
ber ACPI-basiertem acpi-cpufreq."
---
# Comparison: amd-pstate vs acpi-cpufreq
## Überblick
Dieser Vergleich untersucht zwei Linux-Kernel-CPU-Energieverwaltungstreiber für AMD-Prozessoren: **amd-pstate** (der neuere CPPC-basierte Treiber) und **acpi-cpufreq** (der traditionelle ACPI-basierte Treiber). Der Vergleich konzentriert sich auf ihre Funktionen, Leistungsmerkmale und Anwendungsfälle, um zu bestimmen, welcher Treiber für verschiedene Szenarien geeignet ist.
## Vergleichstabelle
| Kriterium | [[amd-pstate]] | [[acpi-cpufreq]] |
|----------|---------------|------------------|
| **Einführung** | Linux Kernel 5.17 (2022) | Etablierter ACPI-Treiber |
| **Hardware-Unterstützung** | AMD-CPUs mit CPPC (neuere Generationen, Zen2, Zen3) | Alle AMD-CPUs via ACPI |
| **Energieverwaltungs-Schnittstelle** | CPPC (Collaborative Processor Performance Control) | ACPI (Advanced Configuration and Power Interface) |
| **Granularität** | Fein-körnig, kontinuierlicher Bereich | 3 diskrete P-States (0, 1, 2) |
| **Feedback-Mechanismus** | Hardware bietet Ziele und Hinweise | Statische ACPI-Tabellen |
| **Governor-Unterstützung** | schedutil, ondemand (mit CPPC-Bewusstsein) | schedutil, ondemand, conservative, powersave, performance |
| **Energieeffizienz** | Überlegen - optimiert für Workload | Standard - generischer Ansatz |
| **Mobiles Batterielebensdauer** | Erweitert - bessere Energieverwaltung | Standard |
| **Leistungstuning** | Präzise, adaptiv | Grob, begrenzt |
| **Fallback-Verhalten** | Fällt auf acpi-cpufreq bei inkompatibel Hardware zurück | N/A |
| **Schnittstelle** | sysfs | sysfs |
| **Kernel-Integration** | Benötigt 5.17+ | Unterstützt in allen Kerneln |
## Analyse
### Energieverwaltungs-Ansatz
**amd-pstate** implementiert einen kooperativen Ansatz über CPPC:
- CPU-Hardware bietet **Leistungsziele** (optimale Betriebspunkte)
- Hardware bietet **Hinweise** über effiziente Leistungsstatus
- Governoren bewerten diese Ziele und Hinweise neben traditionellen Last-Metriken
- Aktiviert **Echtzeit-Anpassung** an Workload-Merkmale
**acpi-cpufreq** verwendet einen traditionellen Ansatz:
- Liest **statische P-States** aus ACPI-Tabellen
- Nur 3 Zustände verfügbar für AMD: Vollständig, Zwischenstation, Niedrigste
- Governoren wählen aus diesen diskreten Zuständen basierend auf Systemlast
- **Grob-körnige** Steuerung mit begrenztem Optimierungspotential
### Leistungsmerkmale
| Aspekt | amd-pstate | acpi-cpufreq |
|--------|------------|--------------|
| **Reaktionsfähigkeit** | Hoch - schnelle Anpassung an Laständerungen | Mittel - Zustandsübergänge dauern länger |
| **Stromverbrauch** | Niedriger - optimiert für Effizienz | Höher - weniger optimiert |
| **Wärmeabgabe** | Niedriger - bessere Wärmeverwaltung | Höher - weniger effizient |
| **Batterie-Auswirkung (Mobil)** | Positiv - verlängert Batterielebensdauer | Neutral - standard Entladung |
| **Benchmark-Leistung** | Vergleichbar - behält Leistung | Vergleichbar - behält Leistung |
### Anwendungsfälle
#### amd-pstate ist ideal für:
- **Moderne AMD-Systeme** (Zen2, Zen3, neuere) mit CPPC-Unterstützung
- **Mobile Geräte**, bei denen Batterielebensdauer kritisch ist
- **Stromempfindliche Umgebungen** (Laptops, Eingebettete Systeme)
- **Mixed-Workload-Szenarien**, die adaptive Energieverwaltung benötigen
- **Benutzer, die optimale Energieeffizienz anstreben** ohne Leistungseinbuße
#### acpi-cpufreq ist geeignet für:
- **Ältere AMD-Systeme** ohne CPPC-Unterstützung
- **Legacy-Hardware**-Kompatibilität
- **Stabile, bewährte Verhaltensweise** Präferenz
- **Fallback-Szenario**, wenn amd-pstate nicht geladen wird
- **Systeme, auf denen amd-pstate nicht verfügbar ist** (Kernel < 5.17)
### Governor-Verhalten
Beide Treiber arbeiten mit den gleichen Governoren, aber mit unterschiedlichen Funktionen:
| Governor | amd-pstate | acpi-cpufreq |
|----------|------------|--------------|
| **schedutil** | Verwendet Scheduler-Daten + CPPC-Ziele/Hinweise | Verwendet nur Scheduler-Daten |
| **ondemand** | Verwendet Last-Daten + CPPC-Ziele/Hinweise | Verwendet nur Last-Daten |
| **conservative** | Konservativer mit CPPC-Bewusstsein | Standard konservatives Verhalten |
| **powersave** | Minimale Frequenz | Minimale Frequenz |
| **performance** | Maximale Frequenz | Maximale Frequenz |
### Kompatibilität und Fallback
**amd-pstate** enthält intelligenten Fallback:
- Versucht, auf AMD-Hardware zu initialisieren
- Prüft auf CPPC-Unterstützung
- Bei Initialisierungsfehlschlag oder inkompatible Hardware: **automatischer Fallback zu acpi-cpufreq**
- Dies gewährleistet Abwärtskompatibilität und elegante Degradation
**acpi-cpufreq** hat keinen Fallback-Mechanismus, da es der traditionelle Treiber ist.
### Migrationsbedingungen
Für Benutzer, die von acpi-cpufreq zu amd-pstate wechseln möchten:
**Vorteile:**
- Verbesserte Energieeffizienz
- Verlängerte Batterielebensdauer auf Laptops
- Bessere Wärmeverwaltung
- Responsivere Energieverwaltung
**Überlegungen:**
- Benötigt Linux Kernel 5.17 oder neuere
- Benötigt AMD-CPU mit CPPC-Unterstützung
- Kann Boot-Parameter oder Konfiguration aktualisieren müssen
- Systemstabilität nach dem Wechsel überwachen
**Überprüfung:**
```bash
# Check current driver
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
# Check available governors
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
# Check CPPC support (amd-pstate)
ls /sys/devices/system/cpu/cpu0/cpufreq/cppc_*
```
## Empfehlung
- **Für neue Systeme mit unterstützter Hardware:** Verwende **amd-pstate** als Standardwahl. Die verbesserte Energieverwaltung und Energieeffizienzvorteile wiegen alle Migrationsprobleme auf.
- **Für ältere Systeme:** Weiterhin **acpi-cpufreq** verwenden oder auf den automatischen Fallback-Mechanismus verlassen.
- **Für gemischte Umgebungen:** Der automatische Fallback von amd-pstate zu acpi-cpufreq gewährleistet Kompatibilität über vielfältige Hardware hinweg.
## Fazit
**amd-pstate** stellt einen bedeutenden Fortschritt in der CPU-Energieverwaltung für AMD-Prozessoren dar und bietet fein-körnige Steuerung, bessere Effizienz und verbessertes Batterielebensdauer. **acpi-cpufreq** bleibt ein zuverlässiger Fallback und dient weiterhin älterer Hardware. Die Wahl zwischen ihnen hängt hauptsächlich von Hardware-Unterstützung und Kernel-Version ab, wobei amd-pstate die klare Präferenz für moderne AMD-Systeme ist.
## Beziehungen
- **compares:** [[amd-pstate]]
- **compares:** [[acpi-cpufreq]]
## Siehe auch
- [[amd-pstate]]
- [[acpi-cpufreq]]