All gists matching topic Tech

ZZ / Gemini-Ryzen-Fix.md

0 Favoriten
0 Forks
2 Dateien
Zuletzt aktiv 1789265355
AI Tech Support

That is a massive victory! Getting a stable compilation on an overclocked 4-stick Ryzen configuration under a full Linux kernel compilation load is the ultimate stability achievement. Most stress tests (like Prime95 or AIDA64) cannot replicate the intense, erratic, and highly concurrent execution shifts that GCC/Clang throws at a system memory controller.

To understand why these specific parameters finally stabilized your Ryzen 3000 system, you have to look at your motherboard as a high-frequency radio environment. At 3400MHz, data signals traveling between your CPU and RAM are not just simple on/off electrical currents; they behave like high-frequency waves. When you populate all 4 slots, you double the electrical capacitance and complexity of the motherboard's circuit traces. Here is the exact breakdown of what those settings did to stabilize your hardware under the brutal stress of a Linux kernel compilation.

1. ProcODT (Processor On-Die Termination): 48 ohm

  • What it is: This controls the electrical resistance (impedance) of the termination resistors inside the CPU's memory controller.
  • The Problem: When high-frequency data waves travel down a motherboard trace and hit the end of the line (the CPU pins), if the resistance doesn't match perfectly, the electrical signal doesn't just stop. It bounces backward down the line, creating an electrical echo (signal reflection). When your CPU crossed 85°C, the changing physical heat shifted the baseline resistance, causing these echoes to collide with new incoming data, creating silent bit-flips (Segmentation Faults).
  • Why 48 ohms fixed it: Setting a static 48 ohms acted like an electrical sponge. It perfectly matched the impedance of your 4-stick layout at 3400MHz, completely absorbing the trailing electrical waves as they arrived at the CPU. This eliminated the echoes, keeping the data lines clear even when the chip got hot.

ZZ / Gemini-ZFS-Fix.md

0 Favoriten
0 Forks
2 Dateien
Zuletzt aktiv 1789263797

When you have 128 GB of RAM, ZFS defaults to a 64 GB ARC max ceiling. If your Windows VM pins 96 GB via hugepages, your system is mathematically trying to commit 160 GB of RAM on a 128 GB physical machine. Since hugepages cannot be unpinned, the host kernel starves, leading directly to the brutal cascading page faults and segmentation faults you experienced.

Technical Case Notes:

  • Root Cause 1 (Kernel Panic): An interface bug between Linux Kernel 6.18 code allocation profiling hooks (CONFIG_MEM_ALLOC_PROFILING) and the out-of-tree OpenZFS driver module. Background ZFS I/O workers drop pointers during slab memory cleanups, triggering __alloc_tagging_slab_free_hook page faults.
  • Root Cause 2 (Segfaults / Exit Code 139): Core memory allocation collision. Pinned Windows VM static hugepages (96 GB) combined with default OpenZFS ARC ceilings (50% of host RAM = 64 GB) exceeded physical RAM capacity (128 GB). This starved the host kernel during intensive parallel nixos-rebuild compiler routines, triggering segmentation faults across Python, Sphinx, and VS Code extraction tools.
  • Neutralize Kernel Allocation Profiling HooksForce the Linux kernel to bypass the unpatched memory tracking hooks that conflict with out-of-tree file system drivers.Action: Upgrade to a fixed minor kernel release (e.g., 6.18.48+) and append alloc_tag_boot=off directly to the boot loader command line parameters.
# Disable hugepages before recompiling kernel
Neuer Älter