The Kernel Profiling Tool has many arguments
you can use, but for our purposes, you
can run it without any arguments, with the
command
kernrate
After running this command, you first
receive output like that in
Figure 4. Wait for
about 30 seconds or so, then press Ctrl+C.
While the Kernel Profiling Tool runs, keep
an eye on DPC activity in Process Explorer
or Performance Monitor to ensure the CPU
usage remains consistently high during the
sample.
Figure 5 shows an excerpt from the second
part of the sample output. As you can
see in the “Results for Kernel Mode” section,
the problematic driver is intelppm, the Intel
processor driver that’s part of the OS load.
This driver throttles the CPU in order to
conserve power consumption to extend battery
life. The Intel processor driver probably
wasn’t the cause of the problem; instead, the
problem was likely due an interoperability
issue with this driver and other hardware or
drivers installed on my system. Regardless,
it’s not required on a nonportable computer
where battery life is of no concern.
3. How to Solve the Problem
The options for solving a DPC problem
are to reinstall, update, or disable
the driver that’s causing the problem.
Which option you choose depends on the
driver. For example, you can’t disable a driver
that your system needs or update a driver
when no updates exist. In my case, because
the Intel processor driver isn’t a required
driver for my system, I decided to disable it.
There are several ways you can disable
drivers, including through the registry,
Device Manager, and Recovery Console
(RC). I opted to disable the Intel processor
driver through the registry. If you’re interested
in using RC or Device Manager to
disable a driver, see the articles referenced
in the “Learning Path.”
The registry data for the Intel processor
driver is in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl
Set\Services\intelppm subkey.
To disable this driver, I
changed the Start entry from
a value of 1 to a value of 4. Table 1 shows the Start values
you can use for subkeys
under the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet Services key. For more information
about how to read and change
entries in these subkeys, see the Microsoft
article “CurrentControlSet\Services Subkey
Entries” (support.microsoft.com/kb/
103000).
As Microsoft continually reminds us,
it’s important that you understand how
to restore the registry before you edit it.
It’s also important to reboot before and
after editing the registry. Rebooting before
a change is important to ensure a clean
Last Known Good Configuration in case
you need to restore the registry. (The Last Known Good Configuration includes
everything under CurrentControlSet key
and is updated after a successful logon.)
Rebooting after a change is necessary for
the change to take effect.
3 Simple Steps Is All It Takes
If your applications are loading slowly or
don’t load at all, the culprit might be a device
driver and the DPCs it makes. By using tools
such as Windows Task Manager, Performance
Monitor, Process Explorer, the Kernel
Profiling Tool, and the registry, you can quickly recognize, diagnose, and solve driver
performance problems.
Some discussion on this:
"amdk8.sys and intelppm.sys" @ http://forum.sysinternals.com/forum_posts.asp?TID=14388
molotov July 31, 2008 (Article Rating: