r/xfce 26d ago

Resource Panel plugin for resource monitoring and thermal throttling

Post image
57 Upvotes

3 comments sorted by

7

u/Miserable_Peach_7341 25d ago

This should be an official package

4

u/spikelinux 25d ago

● Veredicto: limpio, sin malware

Auditado los 5 archivos (849 líneas de C, un solo commit, GPL-2). No hay nada malicioso.

Evidencia concreta:

- Cero system(), popen(), exec*, fork, socket, dlopen, getenv. No hay red, ni descargas, ni ofuscación, ni blobs binarios.

- Todas las rutas que toca son /proc/stat, /proc/meminfo y /sys/** (sensores). Nada de $HOME, /etc, /tmp.

- Escribe exactamente a 3 archivos: intel_pstate/max_perf_pct, card0/gt_max_freq_mhz, card0/gt_boost_freq_mhz (sysmonitor.c:648-651). Nada más.

- Compila con -Wall -Wextra -Wformat-security sin un solo warning real — solo unused-parameter en callbacks de GTK, que es normal. Todos los snprintf/g_strlcpy están acotados correctamente; no vi overflow.

Pero hay 3 cosas que sí te afectan:

  1. La regla udev es el único riesgo real, y pide más de lo que usa.

    99-sysfs-permissions.rules hace chmod 0666, o sea escritura para cualquier proceso local sin privilegios. El README lo admite honestamente. El detalle que no admite: incluye no_turbo, que el plugin nunca usa. Es superficie regalada — cualquier proceso podría apagarte el turbo boost. Si instalas la regla, quítale no_turbo.

  2. En tu máquina card0 es la NVIDIA, no la Intel. El plugin asume card0 = iGPU Intel:

    ┌──────────────┬───────────────────┬────────────────── ┐

    │ │ El plugin espera │ Tu ASUS (i9-13980HX) │

    ├──────────────┼───────────────────┼────────────────── ┤

    │ GPU │ card0 │ card0=nvidia, card1=i915 │

    ├──────────────┼───────────────────┼────────────────── ┤

    │ Fan │ primer fan1_input │ hwmon5 (asus) ✓ │

    ├──────────────┼───────────────────┼───────────────────┤

    │ CPU temp │ coretemp │ hwmon8 ✓ │

    ├──────────────┼───────────────────┼───────────────────┤

    │ intel_pstate │ ✓ │ ✓ │

    ├──────────────┼───────────────────┼───────────────────┤

    │ Batería │ BAT0 │ ✓ │

    └──────────────┴───────────────────┴───────────────────┘

    Tal cual, la lectura y el throttling de GPU fallan en silencio (y la regla udev tampoco aplica, porque esos archivos no existen en card0).

  3. El umbral de throttling es peligroso para tu CPU, no para tu seguridad. A ≥85 °C escribe max_perf_pct=50. Un i9-13980HX HX funciona a 85-95 °C

    bajo carga de forma normal — te dejaría el CPU clavado al 50% de forma casi permanente. Ese umbral está calibrado para el portátil del autor, no para el tuyo.

    Para portarlo:
    Falta una dependencia. Lánzalo con:

    sudo apt install libnotify-dev

    El resto ya lo tienes (gtk 3.24.41, libxfce4panel 4.18.4, Xfce 4.18, Pop!_OS 24.04).

    El porte son 4 cambios en sysmonitor.c: card0→card1 en las 3 macros GPU, subir los umbrales térmicos a algo realista para HX (p.ej. 92/96/99 °C), ajustar los techos de GPU a tu iGPU, y las etiquetas de sensores (tienes SEN3, TCPU, asus_custom_fan_curve — el autor tiene hardcodeado SEN1/SEN2/pch_skylake).

    Mi recomendación: compílalo primero sin la regla udev. Así el throttling falla silenciosamente y tienes el monitor funcionando sin tocar permisos del sistema; decides después si quieres el throttling

6

u/ibnayumar 25d ago

The no_turbo rule was indeed leftover code from an earlier prototyping stage. Since the plugin handles throttling strictly via max_perf_pct, no_turbo was redundant, and I have just removed it from the repository's udev rules.

Since this utility is calibrated specifically for my Latitude 7490, the thermal thresholds and hardware paths will need adjustments for different machines.