diff options
| author | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2024-12-01 18:30:05 +0100 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2024-12-01 18:30:34 +0100 |
| commit | 6fcb99448f1dcbfdae919afec5f1b85d2ff0e7a6 (patch) | |
| tree | 9c88fcbe26b732b40fa1a843eb151b02f0adee52 | |
| parent | e2f595b7a3719445375f1b2d559ba1b16c3f5ba1 (diff) | |
| download | memory-leaks-6fcb99448f1dcbfdae919afec5f1b85d2ff0e7a6.tar.xz | |
Record journey into madness
One of these weekends. I just want to play Hades Ⅱ ☹️
| -rw-r--r-- | guides/setups/hardware.org | 187 |
1 files changed, 186 insertions, 1 deletions
diff --git a/guides/setups/hardware.org b/guides/setups/hardware.org index 11024d6..d4dcff3 100644 --- a/guides/setups/hardware.org +++ b/guides/setups/hardware.org @@ -134,7 +134,7 @@ includes clearing the list of boot loaders, which it set back to the default of just Windows. Sadly this bios does not provide the tools to add boot entries as, apparently, some do. To fix it, I managed to boot to a Linux live USB and add the missing entry using the efiboomgr -command line tool" +command line tool. — [[https://forum-en.msi.com/index.php?threads/updating-to-bios-7a32v1q1-wont-see-linux-uefi-boot.388109/][MSI AMD forums]], August 2023 #+end_quote @@ -147,3 +147,188 @@ my desktop station… not bricked? Pity, because otherwise I've had smooth and incident-free firmware updates on other stations with ~fwupdmgr~ 🤷 +*** SSD +**** Failure +Replaced no-name LDLC with Kingston & reinstalled. +***** Performance loss +Getting uncannily reproducible frame drops (60 ↘ 40±10, movement +visibly choppy) in Hades Ⅱ when moving toward effects/particles-heavy +areas. No idea WTF, those areas ran fine before. + +- "High" graphics setting at native 1920×1080 resolution. + - Tried "Low" graphics, lowered resolution, disabled vsync: symptoms + persist. +- Not forcing any "compatibility tool" version, assuming this yields + "Proton Experimental". + - Tried a couple of old Proton versions: symptoms persist. +- Reinstalled game in case stale shaders need to be recomputed? +- Tumbleweed/Plasma/Wayland session. + - Tried X11: symptoms persist. +- Reducing noise with =balooctl6 suspend=, =swapoff -a= (RAM nowhere + near exhausted). + +Rabbit holes: +****** CPU frequency scaling? +Started by noticing that the Plasma "Power Management" tray widget +says "Power Profile" is "Not available". Not 100% sure whether that +was the case with the old installation; maybe I had had something +configured or installed to enable this? + +Internet says "install and enable power-profiles-daemon", except +that's on: + +#+begin_example +$ systemctl status power-profiles-daemon.service +● power-profiles-daemon.service - Power Profiles daemon + Loaded: loaded (/usr/lib/systemd/system/power-profiles-daemon.service; disabled; preset: disabled) + Active: active (running) since Sun 2024-12-01 11:46:32 CET; 45min ago + Invocation: b2545a02bc9642b7aeb5f370e8b50e7c + Main PID: 2289 (power-profiles-) + Tasks: 4 (limit: 18320) + CPU: 52ms + CGroup: /system.slice/power-profiles-daemon.service + └─2289 /usr/libexec/power-profiles-daemon +#+end_example + +But: + +#+begin_example +$ powerprofilesctl +,* balanced: + PlatformDriver: placeholder + + power-saver: + PlatformDriver: placeholder +#+end_example + +Internet says I am missing the right scaling driver, and seems very +keen on enabling =amd_pstate=, which I do not seem to have available: + +#+begin_example +$ cpupower frequency-info +analyzing CPU 5: + driver: acpi-cpufreq + CPUs which run at the same hardware frequency: 5 + CPUs which need to have their frequency coordinated by software: 5 + maximum transition latency: Cannot determine or is not supported. + hardware limits: 1.40 GHz - 3.70 GHz + available frequency steps: 3.70 GHz, 1.70 GHz, 1.40 GHz + available cpufreq governors: ondemand performance schedutil + current policy: frequency should be within 1.40 GHz and 3.70 GHz. + The governor "schedutil" may decide which speed to use + within this range. + current CPU frequency: Unable to call hardware + current CPU frequency: 3.30 GHz (asserted by call to kernel) + boost state support: + Supported: yes + Active: no + +$ zcat /proc/config.gz | grep -i pstate +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_AMD_PSTATE=y +CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 +# CONFIG_X86_AMD_PSTATE_UT is not set +#+end_example + +=/proc/config.gz= suggests the kernel configuration supports it, but +=cpupower= does not seem to know about it. =dmesg= offers: + +#+begin_example +$ sudo dmesg -H +[…] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled +#+end_example + +Though: + +#+begin_example +$ lscpu | grep -i cppc +Flags: […] cppc […] +#+end_example + +So ACPI problem? Lots of posts mentioning =amd_= parameters on the +kernel command-line but AFAIU those are stale with newer kernels (6.11 +here) which automatically (attempt to) load the =amd_pstate= driver. + +Went through the UEFI menu and found nothing related to ACPI or +[[https://forum.level1techs.com/t/amd-p-state-driver/197885/24][X2APIC]]. Skeptical UEFI settings anyway, since I did not change them +between the old and new installations. + +/Some time later/ + +Probably not ACPI, =dmesg= is choke full of ACPI noise. OTOH, using +some diagnosis methods from [[https://bugzilla.kernel.org/show_bug.cgi?id=218171][this kernel bug report]]: + +#+begin_example +$ find /sys/devices -name '*cppc*' +🦗 +#+end_example + +(=acpidump ; acpixtract ; iasl ; grep -i cpc *.dsl= also yields 🦗, +but =iasl= complains about "unresolved" "control methods", so 🤷) + +/Some time later/ + +[[https://wiki.archlinux.org/title/CPU_frequency_scaling#amd_pstate][ArchWiki]] does say "Change /Enable CPPC/ […] from /Auto/ to /Enabled/". +My UEFI menu tucks that under /Overclocking → Advanced CPU +Configuration → AMD CBS → CPPC CTRL/. That change *does* convince +Linux to enable =amd_pstate=; going over the previous tests in reverse +order: + +#+begin_example +$ [… acpidump && acpixtract && iasl … ] && grep -i cpc *.dsl +ssdt1.dsl: Name (_CPC, Package (0x17) // _CPC: Continuous Performance Control +[… repeats 12 times …] + +$ find /sys/devices -name '*cppc*' -o -name '*pstate*' | tr -s '[:digit:]' N | sort -u +/sys/devices/system/cpu/amd_pstate +/sys/devices/system/cpu/cpufreq/policyN/amd_pstate_highest_perf +/sys/devices/system/cpu/cpufreq/policyN/amd_pstate_hw_prefcore +/sys/devices/system/cpu/cpufreq/policyN/amd_pstate_lowest_nonlinear_freq +/sys/devices/system/cpu/cpufreq/policyN/amd_pstate_max_freq +/sys/devices/system/cpu/cpufreq/policyN/amd_pstate_prefcore_ranking +/sys/devices/system/cpu/cpuN/acpi_cppc + +$ sudo dmesg -H +[… ominous silence about amd_pstate …] + +$ cpupower frequency-info +analyzing CPU 1: + driver: amd-pstate-epp + CPUs which run at the same hardware frequency: 1 + CPUs which need to have their frequency coordinated by software: 1 + maximum transition latency: Cannot determine or is not supported. + hardware limits: 400 MHz - 4.31 GHz + available cpufreq governors: performance powersave + current policy: frequency should be within 2.38 GHz and 4.31 GHz. + The governor "powersave" may decide which speed to use + within this range. + current CPU frequency: Unable to call hardware + current CPU frequency: 3.57 GHz (asserted by call to kernel) + boost state support: + Supported: yes + Active: yes + AMD PSTATE Highest Performance: 255. Maximum Frequency: 4.31 GHz. + AMD PSTATE Nominal Performance: 219. Nominal Frequency: 3.70 GHz. + AMD PSTATE Lowest Non-linear Performance: 141. Lowest Non-linear Frequency: 2.38 GHz. + AMD PSTATE Lowest Performance: 24. Lowest Frequency: 400 MHz. + +$ powerprofilesctl + performance: + CpuDriver: amd_pstate + Degraded: no + +,* balanced: + CpuDriver: amd_pstate + PlatformDriver: placeholder + + power-saver: + CpuDriver: amd_pstate + PlatformDriver: placeholder +#+end_example + +And lo, the 🍃↔🚀 slider is back in the Power Management tray widget. + +Nervous about entering the "Overclocking" UEFI zone tho, and concerned +about these "Maximum frequencies". + +/And does it even help with the game?/ |
