Crash Dump Analysis Patterns (Part 13d)
CARE: Crash Analysis Report Environment
DATA (Dump Analysis + Trace Analysis) Facebook group
Please join the community of memory (dump) and trace analysis engineers. This group promotes scientific methods and memory dump-based worldview.
Twitter @ DumpAnalysis You can now follow portal and blog news at DumpAnalysis on Twitter
LinkedIn Group Dr. Watson Enthusiasts All about Dr. Watson errors and more. Get news, excerpts and progress reports about the forthcoming book The Science of Dr. Watson: An Illustrated History of Debugging (ISBN 978-1906717070)
2010 (0x7DA) - The Year of Dump Analysis 2011 (0x7DB) - 2020 (0x7E4) The Debugging Decade
In order to maintain virtual to physical address translation OS needs page tables. These tables occupy memory too. If there is not enough memory for new tables the system will fail to create processes, allocate I/O buffers and memory from pools. You might see the following diagnostic message from WinDbg:
4: kd> !vm
*** Virtual Memory Usage ***
Physical Memory: 851422 ( 3405688 Kb)
Page File: \??\C:\pagefile.sys
Current: 2095104 Kb Free Space: 2081452 Kb
Minimum: 2095104 Kb Maximum: 4190208 Kb
Available Pages: 683464 ( 2733856 Kb)
ResAvail Pages: 800927 ( 3203708 Kb)
Locked IO Pages: 145 ( 580 Kb)
Free System PTEs: 23980 ( 95920 Kb)
******* 356363 system PTE allocations have failed ******
Free NP PTEs: 6238 ( 24952 Kb)
Free Special NP: 0 ( 0 Kb)
Modified Pages: 482 ( 1928 Kb)
Modified PF Pages: 482 ( 1928 Kb)
NonPagedPool Usage: 18509 ( 74036 Kb)
NonPagedPool Max: 31970 ( 127880 Kb)
PagedPool 0 Usage: 8091 ( 32364 Kb)
PagedPool 1 Usage: 2495 ( 9980 Kb)
PagedPool 2 Usage: 2580 ( 10320 Kb)
PagedPool 3 Usage: 2552 ( 10208 Kb)
PagedPool 4 Usage: 2584 ( 10336 Kb)
PagedPool Usage: 18302 ( 73208 Kb)
PagedPool Maximum: 39936 ( 159744 Kb)
********** 48530 pool allocations have failed **********
Shared Commit: 5422 ( 21688 Kb)
Special Pool: 0 ( 0 Kb)
Shared Process: 5762 ( 23048 Kb)
PagedPool Commit: 18365 ( 73460 Kb)
Driver Commit: 2347 ( 9388 Kb)
Committed pages: 129014 ( 516056 Kb)
Commit limit: 1342979 ( 5371916 Kb)
We also see another diagnostic message about pool allocation failures which could be the consequence of PTE allocation failures.
The cause of system PTE allocation failures might be incorrect value of SystemPages registry key that needs to be adjusted as explained in the following TechNet article:
The number of free page table entries is low, which can cause system instability
Another cause would be /3GB boot option on x86 systems especially used for hosting terminal sessions. This case is explained in Brad Rutkowski’s blog post which also shows how to detect /3GB kernel and complete memory dumps:
Consequences of running 3GB and PAE together
In our case the system was booted with /3GB:
4: kd> vertarget
Windows Server 2003 Kernel Version 3790 (Service Pack 2) MP (8 procs) Free x86 compatible
Product: Server, suite: Enterprise TerminalServer
Built by: 3790.srv03_sp2_gdr.070304-2240
Kernel base = 0xe0800000 PsLoadedModuleList = 0xe08af9c8
Debug session time: Fri Feb 1 09:10:17.703 2008 (GMT+0)
System Uptime: 6 days 17:14:45.528
Normal Windows 2003 systems have different kernel base address which can be checked from Reference Stack Traces for Windows Server 2003 (Virtual Memory section):
kd> vertarget
Windows Server 2003 Kernel Version 3790 (Service Pack 2) UP Free x86 compatible
Product: Server, suite: Enterprise TerminalServer SingleUserTS
Built by: 3790.srv03_sp2_rtm.070216-1710
Kernel base = 0×80800000 PsLoadedModuleList = 0×8089ffa8
Debug session time: Wed Jan 30 17:54:13.390 2008 (GMT+0)
System Uptime: 0 days 0:30:12.000
- Dmitry Vostokov @ DumpAnalysis.org -
_1125.png)
Coming Soon:
Debugging Notebook: Essential Concepts, WinDbg Commands and Tools
Crash Dump Analysis for System Administrators and Support Engineers
New Magazines:
Debugged! MZ/PE: MagaZine for/from Practicing Engineers
New Books:
Memory Dump Analysis Anthology, Volume 3
First Fault Software Problem Solving: A Guide for Engineers, Managers and Users
x64 Windows Debugging: Practical Foundations
Also available:
Windows Debugging: Practical Foundations
DLL List Landscape: The Art from Computer Memory Space
Dumps, Bugs and Debugging Forensics: The Adventures of Dr. Debugalov
WinDbg: A Reference Poster and Learning Cards
Memory Dump Analysis Anthology, Volume 2
Memory Dump Analysis Anthology, Volume 1
New Children's Book:
February 21st, 2008 at 3:03 am
You shoul see my new post on SYSPTES, they just fixed it so you can sue public symbols again:
http://blogs.technet.com/brad_rutkowski/archive/2008/02/21/i-pte-the-fool-sysptes-4-works-in-vista-sp1-ws08.aspx
July 28th, 2009 at 5:38 pm
[…] increaseuserva in BCD (p. 14) - this might get your terminal server installation into problems. See example of Insufficient Memory (PTE) pattern. […]