<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - Defrag Tools: #28 - WinDbg - Scheduling</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling/RSS"></atom:link>
	<image>
		<url>http://media.ch9.ms/ch9/ac40/17f31812-6e13-4252-a9c7-9b64c188ac40/DefragTools28_220.jpg</url>
		<title>Channel 9 - Defrag Tools: #28 - WinDbg - Scheduling</title>
		<link></link>
	</image>
	<description>In this episode of Defrag Tools, Andrew Richards, Chad Beeder and Larry Larsen continue looking at the Debugging Tools for Windows (in particular WinDbg). WinDbg is a debugger that supports user mode debugging of a process, or kernel mode debugging of a computer. This installment goes over the Windows Scheduler. We look at Running, Ready and Waiting threads, and talks about the effect of Power Management on scheduling. We use these commands: !running !running -t !ready !dpcs !thread &amp;lt;addr&amp;gt; 17 !thread -1 17&amp;nbsp;&amp;nbsp; (current thread) Make sure you watch Defrag Tools Episode #1 and Defrag Tools Episode #23 for instructions on how to get the Debugging Tools for Windows and how to set the required environment variables for symbol and source code resolution. Resources:Microsoft Data Center Tour Timeline:[00:00] - Episode #27&#39;s demo issue[02:47] - Kernel Hangs[05:18] - !running[05:48] - Idle Threads &amp;amp; Processor Power Management[10:10] - !running -t[13:53] - !ready[14:15] - Thread State Diagram[16:45] - Saturated example[20:48] - Thread Priority Diagram[22:22] - Balance Set Manager[25:30] - Waiting Threads[26:52] - Summary </description>
	<link></link>
	<language>en</language>
	<pubDate>Wed, 22 May 2013 20:44:59 GMT</pubDate>
	<lastBuildDate>Wed, 22 May 2013 20:44:59 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Defrag Tools: #28 - WinDbg - Scheduling</title>
		<description>
			<![CDATA[Could you elaborate more on thread scheduling according to thread priority &#40;real time, non-real time&#41; and core affinity, please&#63;<p>posted by Igor</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634969553987701865</link>
		<pubDate>Wed, 20 Feb 2013 11:09:58 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634969553987701865</guid>
		<dc:creator>Igor</dc:creator>
	</item>
	<item>
		<title>Re: Defrag Tools: #28 - WinDbg - Scheduling</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634969553987701865">Igor</a>: Processes belong to a group of priorities. A thread with be in the center of the group if it doesn't change the thread priority (&#43;2, &#43;1, 0, -1, -2).</p><p>All threads&nbsp;end up with a number between 0 and 31. While&nbsp;a thread with a higher priority wants to run, it will. All other threads already queued to the core will have to wait (ready).</p><p>Based on the windows version and current power policy, the threads may be queued to an already busy core, or an idle one. Once queued it won't be moved. Each thread has an ideal core, set at birth. If the core is available and power policy allows it, it will be scheduled there. Failing that, the scheduler tries to use the same CPU socket, and then NUMA node.</p><p>If affinity is set, a mask&nbsp;of the available cores is applied first. The decision is then made within that subset. You only use affinity if you know you are going to have more threads than cores, and want to reserve CPU power for other processes. in general, not common.</p><p>Does&nbsp;that answer&nbsp;your question?</p><p>posted by windev</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634970166067374736</link>
		<pubDate>Thu, 21 Feb 2013 04:10:06 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634970166067374736</guid>
		<dc:creator>windev</dc:creator>
	</item>
	<item>
		<title>Re: Defrag Tools: #28 - WinDbg - Scheduling</title>
		<description>
			<![CDATA[Hi windev,<br>thanks for the response. I can imagine that the scheduling mechanism is not a simple thing. I&#8217;ve found great example by Joe Duffy &#40;http&#58;&#47;&#47;www.bluebytesoftware.com&#47;blog&#47;PermaLink,guid,1c013d42-c983-4102-9233-ca54b8f3d1a1.aspx&#41; and also start reading Windows Internals part 1. Thanks for sharing Windows under the hood stuff with public.<p>posted by Igor</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634970351369856283</link>
		<pubDate>Thu, 21 Feb 2013 09:18:56 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634970351369856283</guid>
		<dc:creator>Igor</dc:creator>
	</item>
	<item>
		<title>Re: Defrag Tools: #28 - WinDbg - Scheduling</title>
		<description>
			<![CDATA[Andrew,<br>can you point us to that MS Data Center link you talked about &#64; 9&#58;15<br><br>thx<br><p>posted by Edward</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634971707226333353</link>
		<pubDate>Fri, 22 Feb 2013 22:58:42 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634971707226333353</guid>
		<dc:creator>Edward</dc:creator>
	</item>
	<item>
		<title>Re: Defrag Tools: #28 - WinDbg - Scheduling</title>
		<description>
			<![CDATA[Never mind. I&#39;m a tool.. it was at the top in the &#34;Resources&#34;.<br><p>posted by Edward</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634971707705242596</link>
		<pubDate>Fri, 22 Feb 2013 22:59:30 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634971707705242596</guid>
		<dc:creator>Edward</dc:creator>
	</item>
	<item>
		<title>Re: Defrag Tools: #28 - WinDbg - Scheduling</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634971707705242596">Edward</a>: <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>posted by windev</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634972012164130825</link>
		<pubDate>Sat, 23 Feb 2013 07:26:56 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-28-WinDbg-Scheduling#c634972012164130825</guid>
		<dc:creator>windev</dc:creator>
	</item>
</channel>
</rss>