<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Pointless Blathering : Vista</title><link>http://blogs.msdn.com/peterwie/archive/tags/Vista/default.aspx</link><description>Tags: Vista</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Measuring DPC time</title><link>http://blogs.msdn.com/peterwie/archive/2008/10/06/measuring-dpc-time.aspx</link><pubDate>Tue, 07 Oct 2008 03:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8980372</guid><dc:creator>PeterWie</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/peterwie/comments/8980372.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterwie/commentrss.aspx?PostID=8980372</wfw:commentRss><description>&lt;P&gt;At the DDC this year we had some very useful “community forums”.&amp;nbsp; I generally come out of these feeling like I've been beaten with a sack of oranges, and this year was no exception.&amp;nbsp; But one question in particular struck my eye – someone was saying that MS didn’t provide any useful tools for figuring out why the DPC latency they were seeing on notebooks was so poor.&amp;nbsp; When he asked about this my first thought was “I bet XPerf can do that”.&lt;/P&gt;
&lt;P&gt;XPerf, for those who haven’t seen it, is part of a performance toolkit that the Windows performance team &lt;A href="http://www.microsoft.com/whdc/system/sysperf/perftools.mspx" mce_href="http://www.microsoft.com/whdc/system/sysperf/perftools.mspx"&gt;released&lt;/A&gt;.&amp;nbsp; It collects ETW events reported by various system components and then provides an … interesting … UI to pull all of those events together into graphs and visualize what in the world is going on.&lt;/P&gt;
&lt;P&gt;The down-side of XPerf is that it can be very hard to use.&amp;nbsp; Every time I approach this tool I think “wow that’s a lot of data to make sense of”.&amp;nbsp; But I would think that we can use it to collect information about what DPCs are running and how long they run for.&lt;/P&gt;
&lt;P&gt;Once I installed XPerf I went into the installation directory and looked at the tools that it provides.&amp;nbsp; There are two interesting tools – XPerf.exe and xperfview.exe.&amp;nbsp; The first allows you to easily start and stop trace sessions, merge trace logs and do some data processing on the resulting logs.&amp;nbsp; The second is the GUI visualization tool and lets you see your trace data.&amp;nbsp; Let’s start with XPerf:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;xperf&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;    Microsoft (R) Windows (R) Performance Analyzer Version 4.1.6512&lt;/PRE&gt;&lt;PRE&gt;    Performance Analyzer Command Line&lt;/PRE&gt;&lt;PRE class=alt&gt;    Copyright (c) Microsoft Corporation. All rights reserved.&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;    Usage: xperf options ...&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;        xperf -help view             &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; xperfview, the graphical user interface&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;        xperf -help start            &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; logger start options&lt;/PRE&gt;&lt;PRE&gt;        xperf -help providers        &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; known tracing flags&lt;/PRE&gt;&lt;PRE class=alt&gt;        xperf -help stackwalk        &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; stack walking options&lt;/PRE&gt;&lt;PRE&gt;        xperf -help stop             &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; logger stop options&lt;/PRE&gt;&lt;PRE class=alt&gt;        xperf -help merge            &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; merge multiple trace files&lt;/PRE&gt;&lt;PRE&gt;        xperf -help processing       &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; trace processing options&lt;/PRE&gt;&lt;PRE class=alt&gt;        xperf -help symbols          &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; symbol decoding configuration&lt;/PRE&gt;&lt;PRE&gt;        xperf -help query            &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; query options&lt;/PRE&gt;&lt;PRE class=alt&gt;        xperf -help mark             &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; mark and mark-flush&lt;/PRE&gt;&lt;PRE&gt;        xperf -help format           &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; time and timespan formats on the command line&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;Well we want to use this to start a trace session, so let’s start with xperf –help start:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;xperf -help start&lt;/PRE&gt;&lt;PRE&gt;    Trace start options:&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;    xperf [-start|-update [LoggerName]] -on Flags|Groups options ...&lt;/PRE&gt;&lt;PRE class=alt&gt;            or -flush [LoggerName] ...&lt;/PRE&gt;&lt;PRE&gt;            or -SetProfInt [&amp;lt;n&amp;gt;] [cached]&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;    User provider format &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; -on: (GUID|KnownProviderName)[:Flags[:Level]]&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;        -start      LoggerName       Start a logging session &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; LoggerName&lt;/PRE&gt;&lt;PRE class=alt&gt;        -update     LoggerName       Update a logging session &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; LoggerName&lt;/PRE&gt;&lt;PRE&gt;        -flush      LoggerName       Flush a logging session &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; LoggerName&lt;/PRE&gt;&lt;PRE class=alt&gt;        -on         Flags|Groups     For kernel logging sessions, the sequence of&lt;/PRE&gt;&lt;PRE&gt;                                     kernel flags and groups to be enabled,&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     separated by &lt;SPAN class=str&gt;'+'&lt;/SPAN&gt;.  For user logging&lt;/PRE&gt;&lt;PRE&gt;                                     sessions, the sequence of providers to be&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     enabled, separated by &lt;SPAN class=str&gt;'+'&lt;/SPAN&gt;.  The accepted&lt;/PRE&gt;&lt;PRE&gt;                                     provider format &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt;:&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     (GUID|KnownProviderName)[:Flags[:Level]].&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     Use &lt;SPAN class=str&gt;"xperf -help providers"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; a list of&lt;/PRE&gt;&lt;PRE&gt;                                     valid flags&lt;/PRE&gt;&lt;PRE class=alt&gt;        -f          filename         Log events to specified file; &lt;SPAN class=kwrd&gt;default&lt;/SPAN&gt;:&lt;/PRE&gt;&lt;PRE&gt;                                     \kernel.etl &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; kernel traces and \user.etl&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; user traces&lt;/PRE&gt;&lt;PRE&gt;        -BufferSize Size             Set trace buffer size to Size KB (4 KB -&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     1024 KB); &lt;SPAN class=kwrd&gt;default&lt;/SPAN&gt;: 64 KB&lt;/PRE&gt;&lt;PRE&gt;        -MinBuffers n                Set minimum number of trace buffers to n;&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     &lt;SPAN class=kwrd&gt;default&lt;/SPAN&gt;: 64&lt;/PRE&gt;&lt;PRE&gt;        -MaxBuffers n                Set maximum number of trace buffers to n;&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     &lt;SPAN class=kwrd&gt;default&lt;/SPAN&gt;: 320&lt;/PRE&gt;&lt;PRE&gt;        -MaxFile    Size             Set maximum file size to Size MB&lt;/PRE&gt;&lt;PRE class=alt&gt;        -FlushTimer n                Set the flush timer to n seconds&lt;/PRE&gt;&lt;PRE&gt;        -BootTrace  Flags|Groups|off Config the Event Tracing For Windows Logger &lt;/PRE&gt;&lt;PRE class=alt&gt;                                     to trace boot.  Set flags &lt;SPAN class=kwrd&gt;as&lt;/SPAN&gt; &lt;SPAN class=str&gt;"off"&lt;/SPAN&gt; to turn &lt;/PRE&gt;&lt;PRE&gt;                                     off boot tracing.  All loggering control can&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     be used &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; conjunction with &lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.  Use &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;                                     conjunction with -f to log to a file other &lt;/PRE&gt;&lt;PRE class=alt&gt;                                     than \Perf.etl.&lt;/PRE&gt;&lt;PRE&gt;        -RealTime                    Enable real time tracing&lt;/PRE&gt;&lt;PRE class=alt&gt;        -Buffering                   Enable buffering mode tracing&lt;/PRE&gt;&lt;PRE&gt;        -FileMode   Mode             Set the File Mode; &lt;SPAN class=kwrd&gt;default&lt;/SPAN&gt;: Sequential.&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     Mode: Sequential, Circular, Append, NewFile&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;        -ClockType  ClockType        Set the clock type; &lt;SPAN class=kwrd&gt;default&lt;/SPAN&gt;: PerfCounter.&lt;/PRE&gt;&lt;PRE&gt;                                     Type: Cycle, PerfCounter, SystemTime.&lt;/PRE&gt;&lt;PRE class=alt&gt;        -StackWalk  flags|@file      Enable stack walking &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; the events&lt;/PRE&gt;&lt;PRE&gt;                                     specified &lt;SPAN class=kwrd&gt;as&lt;/SPAN&gt; Flag+Flag+..., or parse &lt;SPAN class=str&gt;'file'&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE class=alt&gt;                                     file &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; flags. Run &lt;SPAN class=str&gt;"xperf -help stackwalk"&lt;/SPAN&gt; &lt;/PRE&gt;&lt;PRE&gt;                                     &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; more information.&lt;/PRE&gt;&lt;PRE class=alt&gt;        -Pids       pid [...]        Apply flags to processes pid [...].  Used &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;                                     conjunction with &lt;SPAN class=kwrd&gt;private&lt;/SPAN&gt; loggers.&lt;/PRE&gt;&lt;PRE class=alt&gt;        -PidNewProcess &amp;lt;command-line&amp;gt;   Apply flags to a &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; process xperf will &lt;/PRE&gt;&lt;PRE&gt;                                     start with &amp;lt;command-line&amp;gt;.  Used &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     conjunction with &lt;SPAN class=kwrd&gt;private&lt;/SPAN&gt; loggers.&lt;/PRE&gt;&lt;PRE&gt;        -heap                        Enable heap tracing &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; processes specified &lt;/PRE&gt;&lt;PRE class=alt&gt;                                     by Pids and PidNewProcess.&lt;/PRE&gt;&lt;PRE&gt;        -critsec                     Enable critical section tracing &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; processes&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     specified by Pids and PidNewProcess.&lt;/PRE&gt;&lt;PRE&gt;        -SetProfInt [&amp;lt;n&amp;gt;] [cached]   Set sampled profile interval to &amp;lt;n&amp;gt; [1221 ..&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     10000000].  If &lt;SPAN class=str&gt;"cached"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt; specified,&lt;/PRE&gt;&lt;PRE&gt;                                     intervals are cached &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; ETW and reapplied&lt;/PRE&gt;&lt;PRE class=alt&gt;                                     whenever &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; ETW kernel loggers with sampled&lt;/PRE&gt;&lt;PRE&gt;                                     profile are started. [Default: &amp;lt;n&amp;gt; = 10000; &lt;/PRE&gt;&lt;PRE class=alt&gt;                                     not cached]&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;    Multiple loggers can be started &lt;SPAN class=kwrd&gt;using&lt;/SPAN&gt; multiple -start options, each followed by&lt;/PRE&gt;&lt;PRE&gt;    the options to be applied to that logger.  If LoggerName, or -start LoggerName,&lt;/PRE&gt;&lt;PRE class=alt&gt;    &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt; omitted, the Kernel Logger &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt; implied.  Only a single instance of Kernel &lt;/PRE&gt;&lt;PRE&gt;    Logger can exist at any time.  If one of the loggers fails to start, all the &lt;/PRE&gt;&lt;PRE class=alt&gt;    already started loggers are stopped.&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;The only required argument to –start is a set of flags.&amp;nbsp; The definition of Flags says to look at xperf providers to see what the possible flags are.&amp;nbsp; The help for that command says:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;xperf -help providers&lt;/PRE&gt;&lt;PRE&gt;    Providers Query options:&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;    xperf -providers [Installed|I] [Registered|R] [KernelFlags|KF] [KernelGroups|KG] [Kernel|K]&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;    Query all installed/known and registered providers, &lt;SPAN class=kwrd&gt;as&lt;/SPAN&gt; well &lt;SPAN class=kwrd&gt;as&lt;/SPAN&gt; all known kernel flags and groups.&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;    The following options are supported:&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;        I,  Installed    : include Installed/known providers&lt;/PRE&gt;&lt;PRE class=alt&gt;        R,  Registered   : include Registered providers&lt;/PRE&gt;&lt;PRE&gt;        KF, KernelFlags  : include Kernel Flags&lt;/PRE&gt;&lt;PRE class=alt&gt;        KG, KernelGroups : include Kernel Groups&lt;/PRE&gt;&lt;PRE&gt;        K,  Kernel       : include Kernel flags and groups; shortcut &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; &lt;SPAN class=str&gt;"KF KG"&lt;/SPAN&gt;.&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;    If no options are specified, all providers are included &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; the output.&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;We want to look at DPC’s, so let’s dump just the kernel providers (if only because dumping all of them would probably exceed what I can post in one blog entry &lt;IMG alt=Smile src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/regular_smile.gif" mce_src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/regular_smile.gif"&gt;).&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;xperf -providers K&lt;/PRE&gt;&lt;PRE&gt;Kernel Flags:&lt;/PRE&gt;&lt;PRE class=alt&gt;       PROC_THREAD    : Process and Thread create/delete&lt;/PRE&gt;&lt;PRE&gt;       LOADER         : Kernel and user mode Image Load/Unload events&lt;/PRE&gt;&lt;PRE class=alt&gt;       PROFILE        : CPU Sample profile&lt;/PRE&gt;&lt;PRE&gt;       CSWITCH        : Context Switch&lt;/PRE&gt;&lt;PRE class=alt&gt;       COMPACT_CSWITCH: Compact Context Switch&lt;/PRE&gt;&lt;PRE&gt;       DISPATCHER     : CPU Scheduler&lt;/PRE&gt;&lt;PRE class=alt&gt;       DPC            : DPC Events&lt;/PRE&gt;&lt;PRE&gt;       INTERRUPT      : Interrupt events&lt;/PRE&gt;&lt;PRE class=alt&gt;       SYSCALL        : System calls&lt;/PRE&gt;&lt;PRE&gt;       PRIORITY       : Priority change events&lt;/PRE&gt;&lt;PRE class=alt&gt;       ALPC           : Advanced Local Procedure Call&lt;/PRE&gt;&lt;PRE&gt;       PERF_COUNTER   : Process Perf Counters&lt;/PRE&gt;&lt;PRE class=alt&gt;       DISK_IO        : Disk I/O&lt;/PRE&gt;&lt;PRE&gt;       DISK_IO_INIT   : Disk I/O Initiation&lt;/PRE&gt;&lt;PRE class=alt&gt;       FILE_IO        : File system operation end times and results&lt;/PRE&gt;&lt;PRE&gt;       FILE_IO_INIT   : File system operation (create/open/close/read/write)&lt;/PRE&gt;&lt;PRE class=alt&gt;       HARD_FAULTS    : Hard Page Faults&lt;/PRE&gt;&lt;PRE&gt;       FILENAME       : FileName (e.g., FileName create/delete/rundown)&lt;/PRE&gt;&lt;PRE class=alt&gt;       SPLIT_IO       : Split I/O&lt;/PRE&gt;&lt;PRE&gt;       REGISTRY       : Registry tracing&lt;/PRE&gt;&lt;PRE class=alt&gt;       DRIVERS        : Driver events&lt;/PRE&gt;&lt;PRE&gt;       POWER          : Power management events&lt;/PRE&gt;&lt;PRE class=alt&gt;       NETWORKTRACE   : Network events (e.g., tcp/udp send/receive)&lt;/PRE&gt;&lt;PRE&gt;       VIRT_ALLOC     : Virtual allocation reserve and release&lt;/PRE&gt;&lt;PRE class=alt&gt;       MEMINFO        : Memory List Info&lt;/PRE&gt;&lt;PRE&gt;       ALL_FAULTS     : All page faults including hard, Copy on write, demand zero faults, etc.&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Kernel Groups:&lt;/PRE&gt;&lt;PRE class=alt&gt;       Base           : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+PROFILE+MEMINFO&lt;/PRE&gt;&lt;PRE&gt;       Diag           : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER+COMPACT_CSWITCH&lt;/PRE&gt;&lt;PRE class=alt&gt;       DiagEasy       : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER&lt;/PRE&gt;&lt;PRE&gt;       Latency        : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PROFILE&lt;/PRE&gt;&lt;PRE class=alt&gt;       FileIO         : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+FILE_IO+FILE_IO_INIT&lt;/PRE&gt;&lt;PRE&gt;       IOTrace        : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+CSWITCH&lt;/PRE&gt;&lt;PRE class=alt&gt;       ResumeTrace    : PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+PROFILE+POWER&lt;/PRE&gt;&lt;PRE&gt;       SysProf        : PROC_THREAD+LOADER+PROFILE&lt;/PRE&gt;&lt;PRE class=alt&gt;       Network        : PROC_THREAD+LOADER+NETWORKTRACE&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;That “Latency” group sounds interesting – it includes DPCs and interrupts along with process/thread create/delete and loader events (both of which it turns out are needed if you want to see what process anything is happening in).&amp;nbsp; So let’s start up a trace session for “Latency”.&amp;nbsp; &lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;xperf -on Latency&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;Now to create some “load” I'll use WMP to watch the stock footage of a bear in the river.&amp;nbsp; Then I exit WMP and stop the trace:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;xperf -stop&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;dir \kernel.etl&lt;/PRE&gt;&lt;PRE&gt; Volume &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; drive C &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt; Safe&lt;/PRE&gt;&lt;PRE class=alt&gt; Volume Serial Number &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt; 042D-D2B2&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt; Directory of C:\&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;10/06/2008  04:52 PM        16,384,000 kernel.etl&lt;/PRE&gt;&lt;PRE&gt;               1 File(s)     16,384,000 bytes&lt;/PRE&gt;&lt;PRE class=alt&gt;               0 Dir(s)  57,208,664,064 bytes free&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;By default the kernel logger dumped all 16 MB of output into c:\kernel.etl.&amp;nbsp; Now if we want to see what’s in that file we can load it up with xperfview:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;xperfview \kernel.etl&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_1.png" width=639 height=484 mce_src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;These are two of 15 different graphs that XPerf makes available from the .ETL file.&amp;nbsp; Here we can see the CPU time for both of my CPUs as well as a count of disk I/O operations in flight over the collection period.&amp;nbsp; I have pulled out the menu of “frames” that you can enable (clicking on the chevron in the middle will make it disappear or reappear).&lt;/P&gt;
&lt;P&gt;Let’s say that I want to drill in on this a little bit, and look at CPU time just for a single process – say WMPLAYER.EXE since I was watching a video.&amp;nbsp; I can select the “CPU Sampling by Process” option from the frame list:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_8.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_3.png" width=644 height=232 mce_src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;And then click the down arrow next to “Processes” and select just WMPLAYER.EXE (The short cut to do this is to click All, then click it again to unselect everything, then scroll and find just the one or two processes that you need").&amp;nbsp; If we do this with Disk Utilization as well, and remove the intervening frames we can get a side-by-side view of CPU activity and disk I/O for one process that looks like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_10.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_4.png" width=636 height=484 mce_src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_4.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We can also overlay the DPC activity on top of the CPU graph if we want.&amp;nbsp; Right click in the CPU Sampling by processor frame and choose “Overlay Graph” then “DPC CPU Usage” and “All” processors:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_12.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_5.png" width=644 height=230 mce_src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_5.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The red and blue lines are CPU 0 and CPU 1 respectively, with the yellow line still showing normal CPU utilization for WMPLAYER.EXE.&lt;/P&gt;
&lt;P&gt;XPerfView also has the ability to show you your data in pivot-table form.&amp;nbsp; Let’s say we want to look at DPC CPU Utilization.&amp;nbsp; Right click on any frame showing DPC data (either the merged graph we just setup above, or re-enable the DPC frame from the frame list) and choose “Summary Table” and you’ll get something like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_14.png" mce_href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_14.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_6.png" width=644 height=362 mce_src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is showing us every DPC event in the .ETL file.&amp;nbsp; The columns on the left of the yellow line control how the data is grouped and the columns to the right of the line show us the aggregate results for that grouping.&amp;nbsp; Here we’re grouped by module name and we can see the total count and average and max duration of all of the DPCs for that module.&amp;nbsp; NDIS stands out with a 2.6 ms DPC.&amp;nbsp; If you want to see every DPC in a particular module (sorted by “Enter Time”) you can click the + box next to the name and the view will expand.&lt;/P&gt;
&lt;P&gt;Let’s say we want to see all the entries grouped not just by module but by the actual DPC routine within that module.&amp;nbsp; The function column shows us the address of the DPC routine that was executed.&amp;nbsp; If we drag that to the right of the yellow line we get a new grouping:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_16.png" mce_href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_16.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_7.png" width=636 height=484 mce_src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_7.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;For each module we can see which DPC function is being called the most and which one is taking up so much time.&amp;nbsp; You can use this to find out other things, like which threads in WMP are taking up time and what thread routine they are running.&amp;nbsp; Go back and enable the CPU Utilization by processor frame then get a summary table for that:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_18.png" mce_href="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_18.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_8.png" width=644 height=470 mce_src="http://blogs.msdn.com/blogfiles/peterwie/WindowsLiveWriter/MeasuringDPCtime_EA29/image_thumb_8.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This would all be more impressive if symbol loading were working.&amp;nbsp; In theory XPerf can load symbols and use them to determine the name of the function rather than just showing an address or “Unknown”.&amp;nbsp; However I’ve rarely gotten symbol loading to work, and when it does work it still seems pretty fragile.&amp;nbsp; If you use xperf –help symbols it provides some help on getting symbols working.&lt;/P&gt;
&lt;P&gt;There’s one more handy trick that I found while I was trying to get symbols to work.&amp;nbsp; XPerf.exe has some processing options too.&amp;nbsp; XPerf –help processing shows us a list of the options:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;xperf -help processing&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;    Trace Post-Processing options:&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;        xperf -I &amp;lt;trace file&amp;gt; ... [-o output] [-symbols ...] [-target {human|machine}]&lt;/PRE&gt;&lt;PRE&gt;                           [-a action ... [-a action ...] ...]&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;        -I       trace file       The trace file to be processed.&lt;/PRE&gt;&lt;PRE class=alt&gt;        -o       output file      Optional, the name of the file that output goes to.  If not&lt;/PRE&gt;&lt;PRE&gt;                                  given, stdout &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt; used.&lt;/PRE&gt;&lt;PRE class=alt&gt;        -symbols [options]        Enable and configure symbol decoding support.&lt;/PRE&gt;&lt;PRE&gt; See &lt;SPAN class=str&gt;"xperf&lt;/PRE&gt;&lt;PRE class=alt&gt;                                  -help symbols"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; detailed help&lt;/PRE&gt;&lt;PRE&gt;        -target  {human|machine}  Select the target audience of the output. Default &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt; human.&lt;/PRE&gt;&lt;PRE class=alt&gt;        -quiet                    Do not print progress information.&lt;/PRE&gt;&lt;PRE&gt;        -tle                      Process the trace even &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; the presence of lost events.&lt;/PRE&gt;&lt;PRE class=alt&gt;        -tti                      Process the trace even &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; the presence of time inversions.&lt;/PRE&gt;&lt;PRE&gt;        -a       action ...       Optional, the actions to take.  Default action &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt; to dump&lt;/PRE&gt;&lt;PRE class=alt&gt;                                  the &lt;SPAN class=kwrd&gt;event&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; text form.&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;    Examples:&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;        xperf -I trace.etl -o &lt;SPAN class=kwrd&gt;out&lt;/SPAN&gt;.csv      : dump the events &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; trace.etl to file &lt;SPAN class=kwrd&gt;out&lt;/SPAN&gt;.csv&lt;/PRE&gt;&lt;PRE&gt;        xperf -help registry               : print help on action registry&lt;/PRE&gt;&lt;PRE class=alt&gt;        xperf -I trace.etl -a registry     : print registry access statistics to stdout&lt;/PRE&gt;&lt;PRE&gt;        xperf -I trace32.etl trace64.etl -o &lt;SPAN class=kwrd&gt;out&lt;/SPAN&gt;.csv : dump the events &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; trace32.etl and trace64.etl to file &lt;SPAN class=kwrd&gt;out&lt;/SPAN&gt;.csv&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;    Available Actions:&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;        boot             Show boot and shutdown statistics&lt;/PRE&gt;&lt;PRE class=alt&gt;        bootprefetch     Show boot-time prefetching information&lt;/PRE&gt;&lt;PRE&gt;        cpudisk          Show CPU/Disk activity report&lt;/PRE&gt;&lt;PRE class=alt&gt;        cswitch          Show Context Switch data&lt;/PRE&gt;&lt;PRE&gt;        diskio           Show Disk IO Statistics&lt;/PRE&gt;&lt;PRE class=alt&gt;        dpcisr           Show DPC/ISR Statistics&lt;/PRE&gt;&lt;PRE&gt;        drvdelay         Show Driver delays&lt;/PRE&gt;&lt;PRE class=alt&gt;        dumper           Dump events &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; the trace &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; text form&lt;/PRE&gt;&lt;PRE&gt;        filename         Show File Names &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; the trace&lt;/PRE&gt;&lt;PRE class=alt&gt;        focuschange      Show the Windows thread focus change events &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; the trace&lt;/PRE&gt;&lt;PRE&gt;        hardfault        Show hard fault statistics by process and file.&lt;/PRE&gt;&lt;PRE class=alt&gt;        marks            Show Marks Information&lt;/PRE&gt;&lt;PRE&gt;        pagefault        Show page fault information &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; the trace&lt;/PRE&gt;&lt;PRE class=alt&gt;        perfctrs         Show process performance counters.&lt;/PRE&gt;&lt;PRE&gt;        pnp              Show PnP events &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; the trace&lt;/PRE&gt;&lt;PRE class=alt&gt;        prefetch         Show Prefetch Information&lt;/PRE&gt;&lt;PRE&gt;        process          Show process, thread, image information&lt;/PRE&gt;&lt;PRE class=alt&gt;        profile          Show Sampled profiler data&lt;/PRE&gt;&lt;PRE&gt;        readyBoot        Show ReadyBoot statistics&lt;/PRE&gt;&lt;PRE class=alt&gt;        registry         Show Registry Access Statistics&lt;/PRE&gt;&lt;PRE&gt;        services         Show service status information&lt;/PRE&gt;&lt;PRE class=alt&gt;        shutdown         Show shutdown statistics&lt;/PRE&gt;&lt;PRE&gt;        stack            Show Stack Information&lt;/PRE&gt;&lt;PRE class=alt&gt;        suspend          Show Suspend Transition Information&lt;/PRE&gt;&lt;PRE&gt;        sysconfig        Show System Configuration&lt;/PRE&gt;&lt;PRE class=alt&gt;        tracestats       Show Trace Statistics&lt;/PRE&gt;&lt;PRE&gt;        winlogon         Show Winlogon events &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; the trace&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;    xperf -help &amp;lt;action&amp;gt; [&amp;lt;action&amp;gt; ...] &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; detailed help&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;    If no action &lt;SPAN class=kwrd&gt;is&lt;/SPAN&gt; present, dumper will be invoked.&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since this all started with DPC latency, let’s try out that dpcisr action, which will “Show DPC/ISR Statistics” and see what it has:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;C:\xperf&amp;gt;xperf -I \kernel.etl -symbols verbose -a dpcisr&lt;/PRE&gt;&lt;PRE&gt;xperf: Using symbol path: srv*c:\DownstreamStore*http:&lt;SPAN class=rem&gt;//msdl.microsoft.com/download/symbols&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;xperf: Using executable path: srv*c:\DownstreamStore*http:&lt;SPAN class=rem&gt;//msdl.microsoft.com/download/symbols&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;xperf: Using SymCache path: c:\DownstreamStore&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;--------------------------&lt;/PRE&gt;&lt;PRE class=alt&gt;DPC Info&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;--------------------------&lt;/PRE&gt;&lt;PRE&gt;CPU Usage Summing By Module For the Whole Trace&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;CPU Usage from 0 us to 24682000 us:&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;     CPU 0 Usage      CPU 1 Usage&lt;/PRE&gt;&lt;PRE class=alt&gt;     usec      %      usec      % Module&lt;/PRE&gt;&lt;PRE&gt;      248   0.00         0   0.00 CLASSPNP.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;       31   0.00         0   0.00 HTTP.sys&lt;/PRE&gt;&lt;PRE&gt;      562   0.00         0   0.00 NETIO.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;       17   0.00         0   0.00 Ntfs.sys&lt;/PRE&gt;&lt;PRE&gt;     5121   0.02         0   0.00 USBPORT.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;      273   0.00         0   0.00 afd.sys&lt;/PRE&gt;&lt;PRE&gt;    16752   0.07       135   0.00 ataport.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;      101   0.00        36   0.00 b57nd60x.sys&lt;/PRE&gt;&lt;PRE&gt;        1   0.00         0   0.00 fltmgr.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;        5   0.00         0   0.00 hal.dll&lt;/PRE&gt;&lt;PRE&gt;     3851   0.02         0   0.00 i8042prt.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;       14   0.00         0   0.00 luafv.sys&lt;/PRE&gt;&lt;PRE&gt;   981815   3.98         0   0.00 ndis.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;      239   0.00         0   0.00 netbt.sys&lt;/PRE&gt;&lt;PRE&gt;     2364   0.01       227   0.00 ntkrnlpa.exe&lt;/PRE&gt;&lt;PRE class=alt&gt;    37360   0.15         0   0.00 portcls.sys&lt;/PRE&gt;&lt;PRE&gt;      119   0.00       103   0.00 rassstp.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;      317   0.00         0   0.00 rdbss.sys&lt;/PRE&gt;&lt;PRE&gt;       27   0.00        17   0.00 srv.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;        4   0.00         0   0.00 srvnet.sys&lt;/PRE&gt;&lt;PRE&gt;    62926   0.25     49358   0.20 tcpip.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;     5054   0.02         0   0.00 usbhub.sys&lt;/PRE&gt;&lt;PRE&gt;        6   0.00         0   0.00 watchdog.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 43599&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,     49, or   0.11%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,    379, or   0.87%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,  10388, or  23.83%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,   9765, or  22.40%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,   7806, or  17.90%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,   3885, or   8.91%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,   5375, or  12.33%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       64 usecs AND &amp;lt;=      128 usecs,   5175, or  11.87%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;      128 usecs AND &amp;lt;=      256 usecs,    639, or   1.47%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;      256 usecs AND &amp;lt;=      512 usecs,     55, or   0.13%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;      512 usecs AND &amp;lt;=     1024 usecs,     55, or   0.13%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;     1024 usecs AND &amp;lt;=     2048 usecs,     22, or   0.05%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;     2048 usecs AND &amp;lt;=     4096 usecs,      6, or   0.01%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                 43599&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 10 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module CLASSPNP.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      2, or  20.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      3, or  30.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,      5, or  50.00%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                    10&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 8 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module HTTP.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      1, or  12.50%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      3, or  37.50%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      4, or  50.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                     8&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 124 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module NETIO.SYS&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,     57, or  45.97%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,     61, or  49.19%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,      5, or   4.03%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      1, or   0.81%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                   124&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 5 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module Ntfs.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      4, or  80.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      1, or  20.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                     5&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 481 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module USBPORT.SYS&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,     81, or  16.84%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,     64, or  13.31%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,    257, or  53.43%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,     76, or  15.80%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,      3, or   0.62%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                   481&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 44 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module afd.sys&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      1, or   2.27%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      3, or   6.82%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,     30, or  68.18%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,      9, or  20.45%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      1, or   2.27%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                    44&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 736 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module ataport.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,     15, or   2.04%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,     28, or   3.80%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,    207, or  28.13%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,    335, or  45.52%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,    139, or  18.89%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       64 usecs AND &amp;lt;=      128 usecs,     12, or   1.63%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                   736&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 50 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module b57nd60x.sys&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,     23, or  46.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,     19, or  38.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      6, or  12.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,      1, or   2.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      1, or   2.00%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                    50&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 1 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module fltmgr.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      1, or 100.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                     1&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 1 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module hal.dll&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      1, or 100.00%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                     1&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 329 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module i8042prt.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      9, or   2.74%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,    298, or  90.58%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,     22, or   6.69%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                   329&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 5 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module luafv.sys&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      1, or  20.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      3, or  60.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      1, or  20.00%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                     5&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 32833 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module ndis.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,    178, or   0.54%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,   9073, or  27.63%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,   7653, or  23.31%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,   4082, or  12.43%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,   1930, or   5.88%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,   4425, or  13.48%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       64 usecs AND &amp;lt;=      128 usecs,   4727, or  14.40%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;      128 usecs AND &amp;lt;=      256 usecs,    627, or   1.91%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;      256 usecs AND &amp;lt;=      512 usecs,     55, or   0.17%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;      512 usecs AND &amp;lt;=     1024 usecs,     55, or   0.17%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;     1024 usecs AND &amp;lt;=     2048 usecs,     22, or   0.07%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;     2048 usecs AND &amp;lt;=     4096 usecs,      6, or   0.02%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                 32833&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 10 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module netbt.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,     10, or 100.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                    10&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 597 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module ntkrnlpa.exe&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,     43, or   7.20%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,    129, or  21.61%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,    344, or  57.62%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,     50, or   8.38%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,      4, or   0.67%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      3, or   0.50%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,     23, or   3.85%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       64 usecs AND &amp;lt;=      128 usecs,      1, or   0.17%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                   597&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 2087 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module portcls.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      1, or   0.05%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,    216, or  10.35%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,    675, or  32.34%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,   1076, or  51.56%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,    119, or   5.70%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                  2087&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 100 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module rassstp.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,     37, or  37.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,     62, or  62.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      1, or   1.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                   100&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 99 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module rdbss.sys&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,     87, or  87.88%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      8, or   8.08%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,      4, or   4.04%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                    99&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 13 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module srv.sys&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      1, or   7.69%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      8, or  61.54%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      4, or  30.77%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                    13&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 2 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module srvnet.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      1, or  50.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      1, or  50.00%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                     2&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 4998 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module tcpip.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      1, or   0.02%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,     48, or   0.96%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,   1242, or  24.85%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,   2179, or  43.60%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,    421, or   8.42%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,    660, or  13.21%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       64 usecs AND &amp;lt;=      128 usecs,    435, or   8.70%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;      128 usecs AND &amp;lt;=      256 usecs,     12, or   0.24%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                  4998&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 1060 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module usbhub.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,    579, or  54.62%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,    386, or  36.42%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,     85, or   8.02%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      9, or   0.85%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,      1, or   0.09%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                  1060&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 6 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module watchdog.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      3, or  50.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      3, or  50.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                     6&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;All Module =  43599,  Total = 43599,   EQUAL&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;--------------------------&lt;/PRE&gt;&lt;PRE&gt;Usage From 0 ms to 24682 ms, Summing In 1 second intervals. Intervals=25&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;                             CPU 0 Usage       CPU 1 Usage&lt;/PRE&gt;&lt;PRE class=alt&gt;Start (ms) End (ms)        (usec)      %     (usec)      %&lt;/PRE&gt;&lt;PRE&gt;         0-1000      :     33992,   3.40       897,   0.09&lt;/PRE&gt;&lt;PRE class=alt&gt;      1000-2000      :     24437,   2.44      1332,   0.13&lt;/PRE&gt;&lt;PRE&gt;      2000-3000      :     42317,   4.23      4510,   0.45&lt;/PRE&gt;&lt;PRE class=alt&gt;      3000-4000      :     40179,   4.02      1757,   0.18&lt;/PRE&gt;&lt;PRE&gt;      4000-5000      :     34190,   3.42       988,   0.10&lt;/PRE&gt;&lt;PRE class=alt&gt;      5000-6000      :     19434,   1.94      2066,   0.21&lt;/PRE&gt;&lt;PRE&gt;      6000-7000      :     25339,   2.53      2618,   0.26&lt;/PRE&gt;&lt;PRE class=alt&gt;      7000-8000      :     46758,   4.68      1691,   0.17&lt;/PRE&gt;&lt;PRE&gt;      8000-9000      :     81696,   8.17      1998,   0.20&lt;/PRE&gt;&lt;PRE class=alt&gt;      9000-10000     :     77932,   7.79      1500,   0.15&lt;/PRE&gt;&lt;PRE&gt;     10000-11000     :     64336,   6.43      1684,   0.17&lt;/PRE&gt;&lt;PRE class=alt&gt;     11000-12000     :     45099,   4.51      2311,   0.23&lt;/PRE&gt;&lt;PRE&gt;     12000-13000     :     59469,   5.95      1890,   0.19&lt;/PRE&gt;&lt;PRE class=alt&gt;     13000-14000     :     44035,   4.40      2393,   0.24&lt;/PRE&gt;&lt;PRE&gt;     14000-15000     :     50393,   5.04      2455,   0.25&lt;/PRE&gt;&lt;PRE class=alt&gt;     15000-16000     :     71508,   7.15      1694,   0.17&lt;/PRE&gt;&lt;PRE&gt;     16000-17000     :     56853,   5.69      2054,   0.21&lt;/PRE&gt;&lt;PRE class=alt&gt;     17000-18000     :     63219,   6.32      4046,   0.40&lt;/PRE&gt;&lt;PRE&gt;     18000-19000     :     62428,   6.24      4742,   0.47&lt;/PRE&gt;&lt;PRE class=alt&gt;     19000-20000     :     33793,   3.38      1134,   0.11&lt;/PRE&gt;&lt;PRE&gt;     20000-21000     :     28147,   2.81       759,   0.08&lt;/PRE&gt;&lt;PRE class=alt&gt;     21000-22000     :     30630,   3.06       640,   0.06&lt;/PRE&gt;&lt;PRE&gt;     22000-23000     :     33294,   3.33       710,   0.07&lt;/PRE&gt;&lt;PRE class=alt&gt;     23000-24000     :     26121,   2.61      1819,   0.18&lt;/PRE&gt;&lt;PRE&gt;     24000-24682     :     21608,   3.17      2177,   0.32&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;--------------------------&lt;/PRE&gt;&lt;PRE class=alt&gt;Interrupt Info&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;--------------------------&lt;/PRE&gt;&lt;PRE&gt;CPU Usage Summing By Module For the Whole Trace&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;CPU Usage from 0 us to 24682000 us:&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;     CPU 0 Usage      CPU 1 Usage&lt;/PRE&gt;&lt;PRE class=alt&gt;     usec      %      usec      % Module&lt;/PRE&gt;&lt;PRE&gt;    10420   0.04         0   0.00 USBPORT.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;    46437   0.19         0   0.00 VIDEOPRT.SYS&lt;/PRE&gt;&lt;PRE&gt;      125   0.00         0   0.00 acpi.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;     7657   0.03         0   0.00 ataport.SYS&lt;/PRE&gt;&lt;PRE&gt;     8722   0.04         0   0.00 i8042prt.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;    72940   0.30         0   0.00 ndis.sys&lt;/PRE&gt;&lt;PRE&gt;    13633   0.06         0   0.00 portcls.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 48319&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,  12026, or  24.89%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,  24954, or  51.64%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,   9693, or  20.06%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,   1611, or   3.33%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,     29, or   0.06%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,      6, or   0.01%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                 48319&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 2256 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module USBPORT.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,    602, or  26.68%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,   1556, or  68.97%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,     97, or   4.30%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,      1, or   0.04%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                  2256&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 20976 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module VIDEOPRT.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,  12026, or  57.33%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,   7821, or  37.29%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,   1081, or   5.15%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,     43, or   0.20%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      1, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,      4, or   0.02%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                 20976&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 11 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module acpi.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,     11, or 100.00%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                    11&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 811 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module ataport.SYS&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,    225, or  27.74%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,    574, or  70.78%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,     12, or   1.48%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                   811&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 1178 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module i8042prt.sys&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,    905, or  76.83%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,    260, or  22.07%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,     12, or   1.02%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       32 usecs AND &amp;lt;=       64 usecs,      1, or   0.08%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                  1178&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Total = 20976 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module ndis.sys&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,  16181, or  77.14%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,   4713, or  22.47%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,     81, or   0.39%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      1, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Total,                                                 20976&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;Total = 2111 &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; module portcls.sys&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        0 usecs AND &amp;lt;=        1 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        1 usecs AND &amp;lt;=        2 usecs,      0, or   0.00%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        2 usecs AND &amp;lt;=        4 usecs,    350, or  16.58%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;        4 usecs AND &amp;lt;=        8 usecs,   1213, or  57.46%&lt;/PRE&gt;&lt;PRE class=alt&gt;Elapsed Time, &amp;gt;        8 usecs AND &amp;lt;=       16 usecs,    545, or  25.82%&lt;/PRE&gt;&lt;PRE&gt;Elapsed Time, &amp;gt;       16 usecs AND &amp;lt;=       32 usecs,      3, or   0.14%&lt;/PRE&gt;&lt;PRE class=alt&gt;Total,                                                  2111&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;All Module =  48319,  Total = 48319,   EQUAL&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;--------------------------&lt;/PRE&gt;&lt;PRE&gt;Usage From 0 ms to 24682 ms, Summing In 1 second intervals. Intervals=25&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;                             CPU 0 Usage       CPU 1 Usage&lt;/PRE&gt;&lt;PRE class=alt&gt;Start (ms) End (ms)        (usec)      %     (usec)      %&lt;/PRE&gt;&lt;PRE&gt;         0-1000      :      5820,   0.58         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;      1000-2000      :      3686,   0.37         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;      2000-3000      :      6472,   0.65         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;      3000-4000      :      5410,   0.54         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;      4000-5000      :      4638,   0.46         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;      5000-6000      :      2420,   0.24         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;      6000-7000      :      2793,   0.28         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;      7000-8000      :      5988,   0.60         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;      8000-9000      :     12071,   1.21         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;      9000-10000     :     12461,   1.25         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;     10000-11000     :      9816,   0.98         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;     11000-12000     :      8206,   0.82         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;     12000-13000     :      8926,   0.89         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;     13000-14000     :      6189,   0.62         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;     14000-15000     :      7649,   0.76         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;     15000-16000     :      9613,   0.96         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;     16000-17000     :      8431,   0.84         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;     17000-18000     :      7618,   0.76         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;     18000-19000     :      7212,   0.72         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;     19000-20000     :      4813,   0.48         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;     20000-21000     :      3925,   0.39         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;     21000-22000     :      4557,   0.46         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;     22000-23000     :      5169,   0.52         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;     23000-24000     :      3489,   0.35         0,   0.00&lt;/PRE&gt;&lt;PRE&gt;     24000-24682     :      2552,   0.37         0,   0.00&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;Distribution of number of 2000 ms intervals w.r.t. DPC/ISR usage:&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;                                      CPU 0                      CPU 1&lt;/PRE&gt;&lt;PRE&gt; DPC/ISR Usage %      DPC      ISR Combined      DPC      ISR Combined&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;gt;=  0 AND &amp;lt;=   1        0       12        0       13       13       13&lt;/PRE&gt;&lt;PRE&gt;&amp;gt;   1 AND &amp;lt;=   5        8        1        7        0        0        0&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;gt;   5 AND &amp;lt;=  10        5        0        6        0        0        0&lt;/PRE&gt;&lt;PRE&gt;&amp;gt;  10 AND &amp;lt;=  20        0        0        0        0        0        0&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;gt;  20 AND &amp;lt;=  40        0        0        0        0        0        0&lt;/PRE&gt;&lt;PRE&gt;&amp;gt;  40 AND &amp;lt;=  60        0        0        0        0        0        0&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;gt;  60 AND &amp;lt;=  80        0        0        0        0        0        0&lt;/PRE&gt;&lt;PRE&gt;&amp;gt;  80 AND &amp;lt;= 100        0        0        0        0        0        0&lt;/PRE&gt;&lt;PRE class=alt&gt;---&lt;/PRE&gt;&lt;PRE&gt;Total:                 13       13       13       13       13       13&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;Which is a pretty nice summary of all the DPCs and ISRs that ran during the data collection period and how long they ran for.&lt;/P&gt;
&lt;P&gt;I like XPerf a lot and it’s something we plan to use in WDF to collect data around specific performance scenarios.&amp;nbsp; In particular its ability to tie system performance data together with custom ETW events logged by components (like, say, UMDF) gives a very nice way to see how the parts of an end-to-end performance scenario break down temporarily and also to see how the scenario either causes system activity or is impacted by system activity.&lt;/P&gt;
&lt;P&gt;I just wish I could get the symbols working &lt;IMG alt=Smile src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/regular_smile.gif" mce_src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/regular_smile.gif"&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8980372" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterwie/archive/tags/Device+Drivers+General/default.aspx">Device Drivers General</category><category domain="http://blogs.msdn.com/peterwie/archive/tags/Vista/default.aspx">Vista</category></item><item><title>Meet my boss</title><link>http://blogs.msdn.com/peterwie/archive/2006/10/02/Meet-my-boss.aspx</link><pubDate>Mon, 02 Oct 2006 22:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:781539</guid><dc:creator>PeterWie</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/peterwie/comments/781539.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterwie/commentrss.aspx?PostID=781539</wfw:commentRss><description>&lt;P&gt;Nar's talk on the &lt;A class="" title="Nar Ganapathy on the NT I/O manager" href="http://channel9.msdn.com/ShowPost.aspx?PostID=239845#239845" target=_blank mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=239845#239845"&gt;NT I/O manager&lt;/A&gt; is now up on channel 9.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=781539" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterwie/archive/tags/Device+Drivers+General/default.aspx">Device Drivers General</category><category domain="http://blogs.msdn.com/peterwie/archive/tags/Vista/default.aspx">Vista</category></item><item><title>Searching from the start menu</title><link>http://blogs.msdn.com/peterwie/archive/2006/06/09/624284.aspx</link><pubDate>Fri, 09 Jun 2006 23:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:624284</guid><dc:creator>PeterWie</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/peterwie/comments/624284.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterwie/commentrss.aspx?PostID=624284</wfw:commentRss><description>&lt;P&gt;When i first saw the new start menu I'll admit that i thought it was overkill.&amp;nbsp; Who in the world wants to search from the start menu after all.&lt;/P&gt;
&lt;P&gt;But i'm finding that it's actually pretty useful.&amp;nbsp; In the days of yore when i wanted to launch Excel or the WDK documentation i had to dig through this long list of folders to find what i wanted.&amp;nbsp; Is Excel under the "Office" or "Microsoft Office" sub-directory in the start menu?&amp;nbsp; I know the WDK documentation has WDK in the name, but where.&lt;/P&gt;
&lt;P&gt;The new start menu actually makes this much easier.&amp;nbsp; Hit the Windows key and type in "WDK" (after you've installed the WDK beta on your Vista machine) or "excel".&amp;nbsp; It searches through the contents of the start menu and lists all the items that contain that word.&amp;nbsp; Usually the executable with that name is first.&lt;/P&gt;
&lt;P&gt;It can be a little slow, but i have to admit it's actually causing me to use the start menu more rather than learning the real exe name and starting the program from the Run dialog.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=624284" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterwie/archive/tags/Vista/default.aspx">Vista</category></item></channel></rss>