amdrapl exposes per-package and per-core energy from AMD RAPL MSRs via sysctl. Sampled on demand at read time. Self-disarming overflow guard bounds 32-bit counter wrap during read silence. Suspend/resume re-baselines counters so reset folds no spurious delta into totals.
Power in milliwatts over measured interval. Fine-grained energy values privileged-only: power side channel (PLATYPUS, CVE-2020-8694).
Binds to physical sockets/cores via cpu_get_pkg_id() and cpu_get_core_id() -> socket-scoped or SMT-shared MSR sampled once per real domain. Requires SMP. Wired into NOTES and module build.
Sponsored by: Advanced Micro Devices (AMD)
MFC after: 2 weeks
Co-authored-by: ShengYi Hung <aokblast@FreeBSD.org>
Signed-off-by: Andre Silva <andasilv@amd.com>