Pull requests / #1679
#1679 Windows: cap conversation-memory admission at the commit limit too (#1607)
open · @nekomario28 · 0 comentarios · En GitHub
Descripción
Fixes #1607. The conversation-cache/checkpoint admission reads `ullAvailPhys` only, so it admits allocations the **commit limit** (RAM + page file) then refuses — the engine exits `0xC0000409` with no message even with GiB of physical RAM free. Under WDDM the card's VRAM is charged to the commit too (#141), and the reporter reproduced the crash 6 times, every time within 0.1 GiB of the limit. ## Change `conversation_available_memory()` on Windows now returns `min(ullAvailPhys, ullAvailPageFile)` — the same pair `host_available_memory` already exposes to the expert-source path. It never admits *more* than today (when the page file is generous, physical RAM is still the bound); the admission floor logic is untouched, and Linux still reads `MemAvailable`. The two parking log lines drop the word "physical" since the bound can now be the commit charge. ## Test plan - `x86_64-w64-mingw32-g++ -fsyntax-only` on `conversation_memory.cpp` and `_conversation_memory_test.cpp`: the `_WIN32` TU type-checks against real windows.h. - Native build + run of `conversation_memory_test`: 23 checks pass; the Windows-specific check (`*available <= ullTotalPhys`) still holds since the bound only tightens. - `g++ -fsyntax-only` on the Linux path: unchanged, clean. Not tested: the actual 0xC0000409 crash on Windows (no Windows box here) — the change only tightens admission, and the reporter's trace ties every crash to the commit boundary this now respects.
En el sitio
Enlaces a install, modelos, releases.