• Software
  • 17134.320 resolves the standby cache bug.
2018/10/02 00:32:17
squall-leonhart
So after 2 years of stuttering caused by the standby cache filling up, Microsoft have snuck a fix into the 320 update released September 26th.
 
The change in question:
  • Addresses an issue that ignores the MM_DONT_ZERO_ALLOCATION flag. This issue leads to degraded performance, and, occasionally, error 0x139 appears. 
You can get an idea of what was going on by the description.
 
MM_DONT_ZERO_ALLOCATION 0x00000001
Do not fill the allocated pages with zeros. By default, MmAllocatePagesForMdlEx zeros the pages that it allocates. By skipping this operation, you can potentially improve the performance of the MmAllocatePagesForMdlEx call. However, you must not use this flag unless either you never expose the allocated pages to user-mode programs, or you always overwrite the original contents of the pages before you expose the allocated pages to user-mode programs.
 
https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/wdm/nf-wdm-mmallocatepagesformdlex
 
The standby cache on Windows is a loose mapped cache for file read speedups.
 
Under memory pressure, the standby cache on windows is supposed to perform this unmap and then the data needing to be added allocated with the MM_DONT_ZERO_ALLOCATION flag set, allowing for a game desiring this memory to overwrite immediately.  The bug was meaning this flag was being ignored in the standby cache leading to regions being Zero'd over before games and applications could make use of it resulting in IO stutter.

Use My Existing Forum Account

Use My Social Media Account