v3.30.0
·
591 commits
to master
since this release
v3.30.0 Kext Idle Strategy, KASLR Anchor, SMU Barrier & Weak Self Fix
Kext (AMDRyzenCPUPowerManagement)
- Runtime Idle Strategy: Replaced compile-time
#ifdefidle strategy (PMRYZEN_IDLE_SIMPLE/MWAIT) with runtime selection viapmRyzen_idle_strategyglobal +switch. Zen 4/5 (Family 19h ≥60h, Family 1Ah) automatically useMONITOR/MWAITfor lower idle power draw; Zen 3- continue with safesti;hlt. No more#errorguards or rebuilds needed when CPU family changes. - KASLR Slide Dual-Anchor: Added
_mh_execute_headeras the primary KASLR slide anchor (stable Mach-O header symbol), with&versionas fallback. Both validated against canonical kernel range>= 0xFFFFFF8000000000. The old single-anchor approach relied only on&versionwhich could be removed from the kernel export set. - SMU Mailbox Memory Barrier: Inserted
__asm__ volatile("mfence" ::: "memory")betweensmnWrite32(msgReg, cmd)and the response poll loop insmuSendCmd. Prevents write-combining buffers on the SMN bus from delaying command delivery, which could cause spurious timeouts in the poll path.
App (AMD Power Gadget)
- Weak Self in Task Closures: Added
[weak self]+guard let selfto all 3 remainingTask { @MainActor }closures inTelemetryModel.swift(init(),sample(),commitPendingChanges()). Prevents the tasks from prolonging the TelemetryModel singleton lifetime when they outlive the object.
Chart Tooltips (Interactive Hover)
- Clean tooltip display: Removed debug x/y coordinates and raw data index from chart hover tooltips. Replaced custom DateFormatter with SwiftUI's built-in
Text(timestamp, style: .time). Eliminated leftover cursor-line rectangles that were inadvertently left from interactive tooltip development.