You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: telemetria per core/thread, e allineo pagine ormai vecchie
README e DESKTOP.md descrivono le novita' di Telemetry (asse con i valori,
pannello frequenza per core/thread, slot "off" per i thread parcheggiati).
OPTIMIZATIONS.md prende una sezione nuova (11) su cosa questo APU dice e non
dice di se': il clock GPU si legge solo dal mailbox SMU (pp_dpm_sclk sotto
carico riporta 17-51 MHz), la frequenza per CU NON esiste perche' le 40 CU
stanno in un unico dominio sclk, e anche l'occupazione per WGP e' irraggiungibile
(umr -wa non vede wave per via del GFXOFF, i nodi amdgpu_gfxoff* rispondono
EINVAL, GRBM_STATUS_SE0/SE1 restano fissi a 0x6 anche sotto carico).
Nel farlo ho corretto due punti diventati falsi:
- il kernel non e' piu' 7.0.10 ma 7.1.7 (due varianti, generic e slim, con
prestazioni identiche a 7.0.11 entro il 2%)
- l'overclock CPU non e' piu' 3,7 GHz su 6 core ma 4,0 GHz su 8, rimisurato
gradino per gradino; aggiunta la sezione 3b sullo sblocco degli 8 core
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,8 +48,8 @@ The BC-250 is fantastic value but a difficult target: non-standard clock control
48
48
- 📸 **Btrfs + Snapper + grub-btrfs** — automatic pre/post-apt snapshots and bootable rollbacks straight from the GRUB menu, with `@home` kept separate so a rollback never touches user data.
49
49
- 🎮 **Gaming, ready** — Steam, Heroic, Proton, gamescope (+ FSR 1), GameMode, MangoHud, plus **EmuDeck** and the **ES-DE** frontend to install and configure emulators in a few clicks. *(SkillFishOS ships the tools, not the games — you bring your own games and ROMs.)*
50
50
- 🧠 **On-device AI** — an Ollama + OpenWebUI stack accelerated in **Vulkan** on the integrated GPU, with a one-click panel that frees the GPU when you want to play.
51
-
- 🧩 **Native PyQt6 app suite** — grouped under a dedicated **"SkillFishOS"** menu: **Tuner**, **AI Panel**, **Monitor** (live sensor charts), **Kernel Manager** (pick the boot kernel and uninstall old ones), **ISO Mount**, and **Hub** — a Discover-style software centre: browse by category, search, read app pages with screenshots, and install/remove/update across **APT** (incl. the signed [`aetherium`](https://mtsistemi.github.io/SkillFishOS/) repo), **Flatpak** and **Snap**, plus add/remove software sources. Every app ships as an updatable `.deb` — including **`skillfish-base`** (hardware **watchdog** + boot-time **freeze detector**: the board recovers from hard hangs by itself and warns you if your profile is unstable) and **`skillfish-console`** (a SteamOS-style **"SkillFishOS Console (Big Picture)"** session on the login screen).
52
-
- 📡 **Remote Manager — web control dashboard** — a modular, self-hosted dashboard to drive the board from any browser or phone: **live telemetry**, a software **KVM** (noVNC) and **web terminal** (ttyd), the **Tuner** on the web (CPU/GPU + live Compute-Unit control), a **full Hub app store** (AppStream + Flatpak + Snap, with the SkillFishOS apps featured), **AI/OpenWebUI**, logs, auto-rules, Wake-on-LAN and **ZeroTier** for access from anywhere. PAM login over HTTPS, LAN-first by design; off by default and toggled per-module from the native **Remote Manager** app. `apt install skillfish-dashboard` — see the [remote-control guide](https://skillfishos.com/docs/controllo-remoto/).
51
+
- 🧩 **Native PyQt6 app suite** — grouped under a dedicated **"SkillFishOS"** menu: **Tuner**, **AI Panel**, **Monitor** (live sensor charts with a labelled axis and **per core/thread CPU frequency**), **Kernel Manager** (pick the boot kernel and uninstall old ones), **ISO Mount**, and **Hub** — a Discover-style software centre: browse by category, search, read app pages with screenshots, and install/remove/update across **APT** (incl. the signed [`aetherium`](https://mtsistemi.github.io/SkillFishOS/) repo), **Flatpak** and **Snap**, plus add/remove software sources. Every app ships as an updatable `.deb` — including **`skillfish-base`** (hardware **watchdog** + boot-time **freeze detector**: the board recovers from hard hangs by itself and warns you if your profile is unstable) and **`skillfish-console`** (a SteamOS-style **"SkillFishOS Console (Big Picture)"** session on the login screen).
52
+
- 📡 **Remote Manager — web control dashboard** — a modular, self-hosted dashboard to drive the board from any browser or phone: **live telemetry** (including per core/thread CPU frequency), a software **KVM** (noVNC) and **web terminal** (ttyd), the **Tuner** on the web (CPU/GPU + live Compute-Unit control), a **full Hub app store** (AppStream + Flatpak + Snap, with the SkillFishOS apps featured), **AI/OpenWebUI**, logs, auto-rules, Wake-on-LAN and **ZeroTier** for access from anywhere. PAM login over HTTPS, LAN-first by design; off by default and toggled per-module from the native **Remote Manager** app. `apt install skillfish-dashboard` — see the [remote-control guide](https://skillfishos.com/docs/controllo-remoto/).
53
53
- 🎨 **End-to-end steampunk theme** — GRUB, Plymouth, SDDM, the KDE Plasma desktop, icons, cursors, Kvantum and wallpaper. The theme lives in [`theme/`](theme/).
54
54
- 🖨️ Driverless printing (CUPS + IPP Everywhere + Avahi), Bluetooth controllers, broken-HPD display hot-swap, and a fully localized desktop.
Copy file name to clipboardExpand all lines: docs/DESKTOP.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,6 +58,14 @@ controls — to control the hardware with no terminal:
58
58
59
59
A polkit policy lets the active local user run the privileged helper (a personal machine — no password prompts for the kids).
60
60
61
+
## SkillFishOS Telemetry (Monitor)
62
+
63
+
Live charts of temperature, frequency, CPU/GPU load, voltages, power and fan — opened automatically during Tuner tests, and a standalone app otherwise. **REC** records a session to a `.sfmon` file under `~/SkillFishOS-benchmarks/`; re‑opening that file turns Telemetry into an analyzer with a time scrubber.
64
+
65
+
Each chart carries a **gridline scale with values**, snapped to human numbers (`0 / 1000 / 2000`, never `-160 / 1394 / 2948`): zero becomes the floor for quantities that can't go negative, and a flat line is not zoomed until noise looks like a mountain.
66
+
67
+
A **per core/thread frequency** panel draws one bar per logical CPU, paired by physical core and labelled `core·thread`, with the MHz on each bar and min/avg/max/online in the header. Threads parked from the Tuner stay visible as a dashed **"off"** slot. This matters on this board: with 8 cores unlocked the sixteen threads idle at 800, 1775 and 3990 MHz at the same time, so a single "CPU MHz" number tells you almost nothing — see [OPTIMIZATIONS.md](OPTIMIZATIONS.md#11-telemetry--what-this-apu-will-and-wont-tell-you).
68
+
61
69
## Local AI panel
62
70
63
71
A matching brass PyQt6 panel to turn the on‑device LLM stack on and off with one click — it frees the GPU/RAM when you want to game. See [AI.md](AI.md).
Built from [Frogging‑Family/linux‑tkg](https://github.com/Frogging-Family/linux-tkg) with:
12
12
@@ -18,7 +18,7 @@ Built from [Frogging‑Family/linux‑tkg](https://github.com/Frogging-Family/li
18
18
19
19
> ⚠️ **Never enable IOMMU on the BC‑250** — it's broken on this hardware. Avoid kernels 6.15.0–6.15.6 and 6.17.8–6.17.10.
20
20
21
-
Recipe and patches: [`kernel-build/`](../kernel-build/). Build instructions: [BUILD.md](BUILD.md). Prebuilt `.deb`: [Releases](../../../releases/tag/kernel-7.0.10-skillfishos).
21
+
Recipe and patches: [`kernel-build/`](../kernel-build/). Build instructions: [BUILD.md](BUILD.md). Prebuilt `.deb`: [Releases](../../../releases/tag/kernel-7.1.7-skillfishos). Two variants ship: **generic** (`-march=x86-64`, runs on any x64 box) and **slim** (BC‑250 only). Measured against 7.0.11 the two kernels are **identical within ±2%** — the update is for maintenance and security, not speed.
22
22
23
23
---
24
24
@@ -39,19 +39,29 @@ Memory bandwidth was *measured* (clpeak/OpenCL) at **~350–367 GB/s** — healt
39
39
40
40
---
41
41
42
-
## 3. CPU overclock & undervolt — 3.7 GHz
42
+
## 3. CPU overclock & undervolt — 4.0 GHz
43
43
44
44
A persistent SMU overclock via [`bc250_smu_oc`](https://github.com/bc250-collective/bc250_smu_oc), applied at boot by a one‑shot systemd service from `/etc/bc250-smu-oc.conf`:
- 4000 is this chip's verified‑stable maximum with **all 8 cores** unlocked, re‑measured step by step from 3500: every rung up to 4000 passes with **zero MCEs**, and the score climbs +14% over 3500. It only became reachable after the fan control was fixed — below ~3900 the limiter is the heatsink, not the silicon.
48
+
- With **half the cores parked** (4c/8t) the ceiling moves to **4200 MHz**, but multi‑thread throughput halves: worth it only for loads that use ≤8 threads.
49
+
- ⚠️ Under a **combined CPU+GPU** soak the clock settles at 3375‑3492 MHz at 86 °C — no crash, just the thermal budget.
48
50
-**APU power sharing:** under a combined CPU+GPU load the APU eases the CPU to ~3450 MHz to stay in budget — by design, no instability. Under CPU‑only load it holds 3700 MHz pinned right at the 85 °C guard.
49
51
- A **thermal guard** watchdog steps the clock down if temperature exceeds the cap.
50
52
51
53
⚠️ **SMU contention:** the governor and the OC tool both talk to the SMU. The OC service ordering (`After=`) and a lock prevent them from clashing during apply/detect.
52
54
53
55
---
54
56
57
+
## 3b. 8‑core unlock — 6c/12t → 8c/16t
58
+
59
+
The BC‑250 ships with two cores fused off *in software*: the SMU's core‑enable mask at SMN `0x5A870` reads `0x77` (3 of 4 cores per CCX). Writing `0xFF` through SMU queue 3 (message `0x98`) brings all **8 cores / 16 threads** online — **no patched BIOS required**. `skillfish-core-unlock`, shipped in `skillfish-base`, does this at boot.
60
+
61
+
Measured gain (same boot, extra cores toggled off via `/sys/.../cpuN/online`): **+20%** — `xz -T` 6.41 s → **5.11 s**, CPU llama.cpp inference 34.0 → **40.8 tok/s**, for +2 °C. Below the theoretical +33% because of memory bandwidth and thread overhead, but the unlock genuinely pays.
62
+
63
+
---
64
+
55
65
## 4. 40‑CU unlock
56
66
57
67
Adds `amdgpu.bc250_cc_write_mode=3` to the kernel cmdline → `active_cu_number` goes from **24 → 40** at GPU init. Result: fp32 jumps from ~6.9 to **~11.3 TFLOPS** (vkpeak `11329` GFLOPS). It's a boot‑time setting (no runtime toggle); the **Tuner** flips it for you and reboots.
@@ -118,7 +128,25 @@ Controller battery levels (via UPower) are surfaced in the desktop HUD.
118
128
119
129
---
120
130
121
-
## 11. Always‑on (no suspend)
131
+
## 11. Telemetry — what this APU will and won't tell you
132
+
133
+
The BC‑250 mis‑reports its own graphics clock: under load `pp_dpm_sclk` reads **17‑51 MHz**. Real numbers only come from the **SMU mailbox**, which is what `skillfish-gpu-freq-sampler` reads for the HUD and the charts.
134
+
135
+
On the CPU side each Zen 2 core has its own P‑state, so per‑core frequency is real and meaningful — with 8 cores unlocked, idle threads sit at 800, 1775 and 3990 MHz *simultaneously*. Sampling one core (what `/proc/cpuinfo`'s first entry gives you) is therefore misleading, and **Monitor** and the dashboard now chart **every logical CPU** separately.
136
+
137
+
**There is no per‑CU frequency, and that's hardware.**`umr -c` reports `max_shader_engines=2`, `max_sh_per_se=2`, `max_cu_per_sh=10` — 2×2×10 = **40 CU (20 WGP)** — all in a **single `sclk` domain**. RDNA2 has no per‑CU DVFS: every enabled CU always runs at the same clock, so there is nothing to read.
138
+
139
+
Per‑CU *occupancy* is blocked too, on three independent counts (all measured with `vkcube` running):
140
+
141
+
-`umr -wa` returns *"No active waves!"* — **GFXOFF** power‑gates the shader array between frames;
142
+
- the `amdgpu_gfxoff*` debugfs nodes are **read‑only and return `EINVAL`**, so GFXOFF can't even be queried from there;
143
+
-`GRBM_STATUS`, `GRBM_STATUS_SE0` and `GRBM_STATUS_SE1` stay pinned at `0x00000006` both idle and loaded — the cheap per‑shader‑engine signal doesn't move on this ASIC.
144
+
145
+
Getting there would need GFXOFF disabled via module parameter plus `-O halt_waves`, which **halts the SQ** — unacceptable on a GPU that is driving the desktop.
146
+
147
+
---
148
+
149
+
## 12. Always‑on (no suspend)
122
150
123
151
The BC‑250's ACPI suspend is broken (it enters `s2idle` and never wakes → reset). SkillFishOS **masks**`sleep.target suspend.target hibernate.target hybrid-sleep.target` and sets logind/KDE to never idle‑suspend or lock — so the box stays reachable (important for remote access) and a child or a remote session is never locked out. **This mask is mandatory on any desktop environment.**
Copy file name to clipboardExpand all lines: website/src/content/docs/en/app-native.md
+11-1Lines changed: 11 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,7 +63,17 @@ The **"My silicon"** panel sums up your board's profile — best CPU and GPU fou
63
63
64
64
**Telemetry** shows temperature, frequency, CPU/GPU load, voltages, power draw and fan in real time. It opens automatically during Tuner tests, but it's also a standalone app. The **REC** button records a benchmark session to a **`.sfmon`** file (in `~/SkillFishOS-benchmarks/`): re-open it and Telemetry becomes an **analyzer** with a time scrubber to review the run second by second.
65
65
66
-

66
+

67
+
68
+
### Per core/thread frequency
69
+
70
+
With [8 cores unlocked](/en/docs/hardware-bc250) a single "CPU frequency" number says very little: at idle the sixteen threads can sit at 800, 1775 and 3990 MHz **at the same time**, so the value you read depends only on which core happened to be sampled.
71
+
72
+
The bottom panel draws **one bar per thread**, paired by physical core and labelled `core·thread`. The colour runs from brass to ember as the thread climbs, the MHz are printed on each bar, and the header sums up **min, average, max and how many threads are online**. Threads you parked from the Tuner don't vanish: they stay as a dashed **"off"** slot, so the real configuration is visible at a glance.
73
+
74
+
### Readable axes
75
+
76
+
Every chart now has a **gridline scale with values on the vertical axis**, snapped to human numbers (`0 / 1000 / 2000 / 3000`, not `-160 / 1394 / 2948`). Zero becomes the floor when the data sits near it, so a MHz or fan-RPM chart never shows a negative baseline; and a flat line is no longer zoomed until noise looks like a mountain.
Copy file name to clipboardExpand all lines: website/src/content/docs/en/controllo-remoto.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ Sign in with your **system username and password** (the same as the SkillFishOS
38
38
39
39
The dashboard composes itself from the modules you enabled:
40
40
41
-
-**Telemetry** — live charts of temperatures, frequencies, Watts and CPU/GPU load.
41
+
-**Telemetry** — live charts of temperatures, frequencies, Watts and CPU/GPU load, with values on the vertical axis and a bar panel showing **per core/thread frequency** (all 16 threads, parked ones clearly marked).
-**Controls (Tuner)** — quick presets plus the **full Tuner** on the web: CPU (frequency/undervolt/temperature), GPU (frequency/voltage/governor), **live Compute-Unit control** (WGP grid, no reboot), fan, VRAM, *Test* and the **"Find my max"** wizards.
44
44
-**Apps & packages (Hub)** — a real **app store** (AppStream + Flatpak + Snap): browse by category, search, install/remove, update. The **SkillFishOS apps** are featured at the top.
Copy file name to clipboardExpand all lines: website/src/content/docs/it/app-native.md
+11-1Lines changed: 11 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,7 +63,17 @@ Il pannello **«Il mio silicio»** riassume il profilo della tua scheda — CPU
63
63
64
64
**Telemetry** mostra in tempo reale temperatura, frequenza, carico CPU/GPU, voltaggi, assorbimento e ventola. Si apre automaticamente durante i test del Tuner, ma è anche un'app a sé. Il pulsante **REC** registra una sessione di benchmark in un file **`.sfmon`** (in `~/SkillFishOS-benchmarks/`): riaprendolo, Telemetry diventa un **analizzatore** con scrubber temporale per rivedere la run secondo per secondo.
65
65
66
-

66
+

67
+
68
+
### Frequenza per core/thread
69
+
70
+
Con gli [8 core sbloccati](/docs/hardware-bc250) un unico numero "frequenza CPU" dice poco: a riposo i sedici thread possono stare **contemporaneamente** a 800, 1775 e 3990 MHz, quindi il valore che leggi dipende solo da quale core è stato campionato.
71
+
72
+
Il pannello in fondo mostra **una barra per ogni thread**, raggruppate a coppie per core fisico ed etichettate `core·thread`. Il colore va dall'ottone alla brace man mano che il thread sale, i MHz sono scritti sopra ogni barra e l'intestazione riassume **minimo, media, massimo e quanti thread sono attivi**. I thread che hai spento dal Tuner non spariscono: restano come **slot tratteggiato "off"**, così vedi a colpo d'occhio la configurazione reale.
73
+
74
+
### Assi leggibili
75
+
76
+
Tutti i grafici hanno una **griglia con i valori sull'asse verticale**, agganciati a numeri tondi (`0 / 1000 / 2000 / 3000`, non `-160 / 1394 / 2948`). Lo zero diventa il fondo scala quando i dati gli stanno vicino, così un grafico di MHz o di giri ventola non mostra mai un fondo negativo; e una linea piatta non viene "zoomata" fino a trasformare il rumore in una montagna.
Copy file name to clipboardExpand all lines: website/src/content/docs/it/controllo-remoto.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ Accedi con **utente e password di sistema** (gli stessi del login di SkillFishOS
38
38
39
39
La dashboard si compone in automatico in base ai moduli che hai attivato:
40
40
41
-
-**Telemetria** — grafici live di temperature, frequenze, Watt e carichi CPU/GPU.
41
+
-**Telemetria** — grafici live di temperature, frequenze, Watt e carichi CPU/GPU, con i valori sull'asse verticale e un pannello a barre della **frequenza per core/thread** (tutti i 16 thread, con evidenza di quelli spenti dal Tuner).
-**Controlli (Tuner)** — preset rapidi + il **Tuner completo** in versione web: CPU (frequenza/undervolt/temperatura), GPU (frequenza/voltaggio/governor), **controllo delle Compute Unit a caldo** (griglia WGP, senza riavvio), ventola, VRAM, *Test* e wizard **"Trova il massimo"**.
44
44
-**App e pacchetti (Hub)** — un vero **app store** (AppStream + Flatpak + Snap): sfoglia per categorie, cerca, installa/rimuovi, aggiorna. Le **app SkillFishOS** sono messe in evidenza in cima.
0 commit comments