<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Crash Dump Analysis Patterns (Part 14)</title>
	<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/</link>
	<description>Structural and Behavioral Patterns for Software Diagnostics, Forensics and Prognostics</description>
	<pubDate>Wed, 06 May 2026 16:21:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-741768</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Sun, 28 Jun 2020 15:32:31 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-741768</guid>
		<description>!ready command is also useful:

&lt;p align="left"&gt;0: kd&gt; !ready
KSHARED_READY_QUEUE fffff8000da1a700: (00) **--------------------------------------------------------------
SharedReadyQueue fffff8000da1a700: Ready Threads at priority 8
    THREAD ffff930ac224b080  Cid 0c14.0418  Teb: 000000ade0765000 Win32Thread: ffff930ac254b7a0 READY on processor 80000001
    THREAD ffff930ac5dc3080  Cid 0c58.1af8  Teb: 00000056ece5b000 Win32Thread: 0000000000000000 READY on processor 80000000
    THREAD ffff930abd933040  Cid 0004.00ec  Teb: 0000000000000000 Win32Thread: 0000000000000000 READY on processor 80000001
    THREAD ffff930ac1de4080  Cid 0c14.0d3c  Teb: 000000ade0755000 Win32Thread: 0000000000000000 READY on processor 80000000
SharedReadyQueue fffff8000da1a700: Ready Threads at priority 5
    THREAD ffff930ac1e36040  Cid 0bf8.0d68  Teb: 000000ce7c002000 Win32Thread: ffff930ac21f2bf0 READY on processor 80000000
SharedReadyQueue fffff8000da1a700: Ready Threads at priority 4
    THREAD ffff930ac1b40080  Cid 081c.0ba4  Teb: 0000000000000000 Win32Thread: 0000000000000000 READY on processor 80000000
SharedReadyQueue fffff8000da1a700: Ready Threads at priority 0
    THREAD ffff930abcfac080  Cid 0004.0038  Teb: 0000000000000000 Win32Thread: 0000000000000000 READY on processor 80000001
Processor 0: No threads in READY state
Processor 1: Group Scheduling Queue

&lt;p align="left"&gt;    Scb: ffff930ac28a0778 Rank: 2 OQHistory: 0000000000015555
    GenCycles: 706070 LTCycles: 21604816, MinTarget: 633600000, MaxTarget: 1267200000, RankTarget: 63360000
    nt!_KSCB ffff930ac28a0778: Ready Threads at priority 9
        THREAD ffff930ac62c70c0  Cid 158d0.14a8  Teb: 000000f09395c000 Win32Thread: 0000000000000000 READY on processor 1</description>
		<content:encoded><![CDATA[<p>!ready command is also useful:</p>
<p align="left">0: kd> !ready<br />
KSHARED_READY_QUEUE fffff8000da1a700: (00) **&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
SharedReadyQueue fffff8000da1a700: Ready Threads at priority 8<br />
    THREAD ffff930ac224b080  Cid 0c14.0418  Teb: 000000ade0765000 Win32Thread: ffff930ac254b7a0 READY on processor 80000001<br />
    THREAD ffff930ac5dc3080  Cid 0c58.1af8  Teb: 00000056ece5b000 Win32Thread: 0000000000000000 READY on processor 80000000<br />
    THREAD ffff930abd933040  Cid 0004.00ec  Teb: 0000000000000000 Win32Thread: 0000000000000000 READY on processor 80000001<br />
    THREAD ffff930ac1de4080  Cid 0c14.0d3c  Teb: 000000ade0755000 Win32Thread: 0000000000000000 READY on processor 80000000<br />
SharedReadyQueue fffff8000da1a700: Ready Threads at priority 5<br />
    THREAD ffff930ac1e36040  Cid 0bf8.0d68  Teb: 000000ce7c002000 Win32Thread: ffff930ac21f2bf0 READY on processor 80000000<br />
SharedReadyQueue fffff8000da1a700: Ready Threads at priority 4<br />
    THREAD ffff930ac1b40080  Cid 081c.0ba4  Teb: 0000000000000000 Win32Thread: 0000000000000000 READY on processor 80000000<br />
SharedReadyQueue fffff8000da1a700: Ready Threads at priority 0<br />
    THREAD ffff930abcfac080  Cid 0004.0038  Teb: 0000000000000000 Win32Thread: 0000000000000000 READY on processor 80000001<br />
Processor 0: No threads in READY state<br />
Processor 1: Group Scheduling Queue</p>
<p align="left">    Scb: ffff930ac28a0778 Rank: 2 OQHistory: 0000000000015555<br />
    GenCycles: 706070 LTCycles: 21604816, MinTarget: 633600000, MaxTarget: 1267200000, RankTarget: 63360000<br />
    nt!_KSCB ffff930ac28a0778: Ready Threads at priority 9<br />
        THREAD ffff930ac62c70c0  Cid 158d0.14a8  Teb: 000000f09395c000 Win32Thread: 0000000000000000 READY on processor 1</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-741767</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Sun, 28 Jun 2020 15:31:53 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-741767</guid>
		<description>Some very small value of ticks like Ticks: 1 is also a sign.</description>
		<content:encoded><![CDATA[<p>Some very small value of ticks like Ticks: 1 is also a sign.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-741638</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Thu, 19 Sep 2013 14:54:25 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-741638</guid>
		<description>In kernel dumps we can see all running thread stacks with this command:

!running -t

For complete memory dumps user portion would be invalid if thread process contexts are different from the current process on the current CPU so manual thread inspection via !thread &lt;addr&gt; 3f is recommended.</description>
		<content:encoded><![CDATA[<p>In kernel dumps we can see all running thread stacks with this command:</p>
<p>!running -t</p>
<p>For complete memory dumps user portion would be invalid if thread process contexts are different from the current process on the current CPU so manual thread inspection via !thread <addr> 3f is recommended.</addr></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-384934</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Sat, 03 Dec 2011 21:19:09 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-384934</guid>
		<description>How to use WinDbg scripts to get spiking threads from kernel and complete memory dumps: 
http://www.dumpanalysis.org/blog/index.php/2011/12/03/2-windbg-scripts-that-changed-the-world/</description>
		<content:encoded><![CDATA[<p>How to use WinDbg scripts to get spiking threads from kernel and complete memory dumps:<br />
<a href="http://www.dumpanalysis.org/blog/index.php/2011/12/03/2-windbg-scripts-that-changed-the-world/" rel="nofollow">http://www.dumpanalysis.org/blog/index.php/2011/12/03/2-windbg-scripts-that-changed-the-world/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-333006</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Thu, 25 Aug 2011 10:23:10 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-333006</guid>
		<description>It is also useful to combine it with &lt;a href="http://www.dumpanalysis.org/blog/index.php/2011/06/23/crash-dump-analysis-patterns-part-141/" rel="nofollow"&gt;Thread Age&lt;/a&gt; pattern to see the magnitude of spike:

Process Uptime: 0 days 17:35:06.000

If we look at thread CPU consumption we would see spike values relatively small compared to the overall process uptime:

0:000&gt; !runaway f
 User Mode Time
  Thread       Time
   4:1560      0 days 0:00:08.034
   7:7e0       0 days 0:00:03.338
  11:1244      0 days 0:00:03.213
   8:1510      0 days 0:00:02.324
   3:86c       0 days 0:00:00.015
[...]

However, compared to thread ages we see them much bigger:

 Elapsed Time
  Thread       Time
[...]
   3:86c       0 days 17:35:05.213
   4:1560      0 days 0:02:12.350
[...]
   7:7e0       0 days 0:00:22.429
  11:1244      0 days 0:00:17.655</description>
		<content:encoded><![CDATA[<p>It is also useful to combine it with <a href="http://www.dumpanalysis.org/blog/index.php/2011/06/23/crash-dump-analysis-patterns-part-141/" rel="nofollow">Thread Age</a> pattern to see the magnitude of spike:</p>
<p>Process Uptime: 0 days 17:35:06.000</p>
<p>If we look at thread CPU consumption we would see spike values relatively small compared to the overall process uptime:</p>
<p>0:000> !runaway f<br />
 User Mode Time<br />
  Thread       Time<br />
   4:1560      0 days 0:00:08.034<br />
   7:7e0       0 days 0:00:03.338<br />
  11:1244      0 days 0:00:03.213<br />
   8:1510      0 days 0:00:02.324<br />
   3:86c       0 days 0:00:00.015<br />
[&#8230;]</p>
<p>However, compared to thread ages we see them much bigger:</p>
<p> Elapsed Time<br />
  Thread       Time<br />
[&#8230;]<br />
   3:86c       0 days 17:35:05.213<br />
   4:1560      0 days 0:02:12.350<br />
[&#8230;]<br />
   7:7e0       0 days 0:00:22.429<br />
  11:1244      0 days 0:00:17.655</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-242543</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Mon, 14 Feb 2011 14:16:41 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-242543</guid>
		<description>Is some legacy dumps with missing !runaway information we can guess spiking threads if they do some sort of a peek message loop:

&lt;p align="left"&gt;0:012&gt; !runaway
ERROR: !runaway: extension exception 0x80004002.
    "Unable to get thread times - dumps may not have time information"

&lt;p align="left"&gt;   6  Id: 136c.13bc Suspend: 1 Teb: 7ffd8000 Unfrozen
ChildEBP RetAddr  Args to Child              
0198f914 5b2d887c 0198f938 00000000 00000000 USER32!PeekMessageA+0xfb
0198fa20 5b2d3b87 059d6704 00000001 00000000 ModuleA!Choose+0x177
[...]

&lt;p align="left"&gt;0:012&gt; ~6s
eax=000abbdd ebx=00000400 ecx=00000200 edx=00000abb esi=7ffd8000 edi=0066b3e0
eip=7e42a3e5 esp=0198f908 ebp=0198f914 iopl=0 nv up ei pl nz na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000   efl=00040206
USER32!PeekMessageA+0xfb:
7e42a3e5 2b470c          sub     eax,dword ptr [edi+0Ch] ds:0023:0066b3ec=000abbdd</description>
		<content:encoded><![CDATA[<p>Is some legacy dumps with missing !runaway information we can guess spiking threads if they do some sort of a peek message loop:</p>
<p align="left">0:012> !runaway<br />
ERROR: !runaway: extension exception 0&#215;80004002.<br />
    &#8220;Unable to get thread times - dumps may not have time information&#8221;</p>
<p align="left">   6  Id: 136c.13bc Suspend: 1 Teb: 7ffd8000 Unfrozen<br />
ChildEBP RetAddr  Args to Child<br />
0198f914 5b2d887c 0198f938 00000000 00000000 USER32!PeekMessageA+0xfb<br />
0198fa20 5b2d3b87 059d6704 00000001 00000000 ModuleA!Choose+0&#215;177<br />
[&#8230;]</p>
<p align="left">0:012> ~6s<br />
eax=000abbdd ebx=00000400 ecx=00000200 edx=00000abb esi=7ffd8000 edi=0066b3e0<br />
eip=7e42a3e5 esp=0198f908 ebp=0198f914 iopl=0 nv up ei pl nz na pe nc<br />
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000   efl=00040206<br />
USER32!PeekMessageA+0xfb:<br />
7e42a3e5 2b470c          sub     eax,dword ptr [edi+0Ch] ds:0023:0066b3ec=000abbdd</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Case Study: Extremely Inconsitent Dump and CPU Spike</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-185920</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Case Study: Extremely Inconsitent Dump and CPU Spike</dc:creator>
		<pubDate>Wed, 22 Sep 2010 21:49:37 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-185920</guid>
		<description>[...] The both &#8220;running&#8221; threads were showing signs of a spiking thread: [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] The both &#8220;running&#8221; threads were showing signs of a spiking thread: [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Crash Dump Analysis Patterns (Part 106)</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-185199</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Crash Dump Analysis Patterns (Part 106)</dc:creator>
		<pubDate>Sun, 19 Sep 2010 21:42:29 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-185199</guid>
		<description>[...] level when we detect it using Task Manager, for example. Sometimes that process has only one spiking thread among many but there are cases when CPU consumption is spread among many threads. I call this [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] level when we detect it using Task Manager, for example. Sometimes that process has only one spiking thread among many but there are cases when CPU consumption is spread among many threads. I call this [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Insufficient kernel pool memory, spiking thread and data contents locality: pattern cooperation</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-184992</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Insufficient kernel pool memory, spiking thread and data contents locality: pattern cooperation</dc:creator>
		<pubDate>Sat, 18 Sep 2010 23:30:40 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-184992</guid>
		<description>[...] We also check CPU consumption and see two spiking threads: [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] We also check CPU consumption and see two spiking threads: [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Succession of Patterns (Part 2)</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-155820</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Succession of Patterns (Part 2)</dc:creator>
		<pubDate>Thu, 03 Jun 2010 23:20:54 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/05/11/crash-dump-analysis-patterns-part-14/#comment-155820</guid>
		<description>[...] where Wait Chains (executive resources) and Swarm of Shared Locks were probably resulted from a Spiking Thread. We have these resource [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] where Wait Chains (executive resources) and Swarm of Shared Locks were probably resulted from a Spiking Thread. We have these resource [&#8230;]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
