Author: burisch
Subject: usbport.sys, HECIx64.sys consuming lots of CPU
Posted: 15 December 2013 at 4:05pm
Hi everyone,
I can't figure out where I am losing half a core of performance. I'm running an i7 4770k @ 4.2GHz, and I need every core / hyperthread, as I run this machine at 100% utilization almost all the time (doing image analysis/processing stuff).
Task manager tells me I have a baseline of 7% CPU usage, which is about half of core 0 (hyperthread 0). In the process list, no process is shown as consuming that. So, I ran process explorer, and saw that the Interrupts process is consuming this CPU usage.
Did a bit more digging on google, and discovered http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
(When trying to install the Windows 7 SDK, at first I couldn't get it working. The installer was complaining that 'A device attached to the system is not functioning'. I thought this might have something to do with my graphics card; so I attempted to disable the graphics card and just run off my on-board gfx -- Asustek Z87 Extreme 4 mobo. I thought I had succeeded, as on the next boot only monitor 3 (connected to the onboard DVI-D connector) displayed the boot logo, however when Windows came up, it recognized all 3 monitors. Just for fun I tried to run the SDK installer again, and this time it worked. Weird.)
OK, so I ran xperf for a minute or so, and when I looked at the ISR Duration by Module, Function it confirms that usbport.sys is using about 4.8% CPU, HECIx64.sys is using about 1.4%, and hal.dll is using about 0.7%.
(Function always comes up as '?'. This may have something to do with the message I got when I started xperf tracing:
I found a thread on this forum, http://forum.sysinternals.com/dxgkrnlsys-and-usbportsys-hardware-interrupts_topic20686_page1.html, which had some pretty insightful comments. I'm hoping someone can come to my rescue here! I'm suspecting it's something to do with ISR handling.
Here's my PCI interrupt map:
Can anyone suggest what I might be able to do to reclaim the lost CPU power? I don't see any conflicts that might be the problem, and I sure don't know how to change PCI IRQs !
Note: my DPC latency is very low, and not causing an issue.
Full machine specs:
Asrock Z87 Extreme 4 motherboard
Intel i7 4770k processor, stock 3.5GHz but overclocked to 4.2GHz
32GB RAM (4 x 8GB)
Radeon HD5870
Samsung 840 EVO 120GB SSD
Intel Gen2 80GB SSD
Two Seagate SATA drives, a 320GB and a 1TB
Three external drives:
- WD 3TB
- Seagate 2TB
- Seagate 3TB
Standard keyboard / mouse
1280 x 1024 LG monitor
1920 x 1080 LG monitor
1680 x 1050 Samsung monitor
Anyone?
Subject: usbport.sys, HECIx64.sys consuming lots of CPU
Posted: 15 December 2013 at 4:05pm
Hi everyone,
I can't figure out where I am losing half a core of performance. I'm running an i7 4770k @ 4.2GHz, and I need every core / hyperthread, as I run this machine at 100% utilization almost all the time (doing image analysis/processing stuff).
Task manager tells me I have a baseline of 7% CPU usage, which is about half of core 0 (hyperthread 0). In the process list, no process is shown as consuming that. So, I ran process explorer, and saw that the Interrupts process is consuming this CPU usage.
Did a bit more digging on google, and discovered http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
(When trying to install the Windows 7 SDK, at first I couldn't get it working. The installer was complaining that 'A device attached to the system is not functioning'. I thought this might have something to do with my graphics card; so I attempted to disable the graphics card and just run off my on-board gfx -- Asustek Z87 Extreme 4 mobo. I thought I had succeeded, as on the next boot only monitor 3 (connected to the onboard DVI-D connector) displayed the boot logo, however when Windows came up, it recognized all 3 monitors. Just for fun I tried to run the SDK installer again, and this time it worked. Weird.)
OK, so I ran xperf for a minute or so, and when I looked at the ISR Duration by Module, Function it confirms that usbport.sys is using about 4.8% CPU, HECIx64.sys is using about 1.4%, and hal.dll is using about 0.7%.
(Function always comes up as '?'. This may have something to do with the message I got when I started xperf tracing:
F:\temp>xperf -on latency -stackwalk profileI subsequently changed this registry entry, but I haven't rebooted the machine yet; if this might help in the diagnosis, I can re-run xperf after a reboot.)
xperf: warning: This system is not fully configured for x64 stack tracing.
Please modify the registry under:
HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management
and set the value:
DisablePagingExecutive (REG_DWORD) = 1
Then reboot before retrying tracing.
Note: Tracing has been enabled, this is just a warning.
I found a thread on this forum, http://forum.sysinternals.com/dxgkrnlsys-and-usbportsys-hardware-interrupts_topic20686_page1.html, which had some pretty insightful comments. I'm hoping someone can come to my rescue here! I'm suspecting it's something to do with ISR handling.
Here's my PCI interrupt map:
10 Intel(R) 8 Series/C220 Series SMBus Controller - 8C22
16 Intel(R) 8 Series/C220 Series PCI Express Root Port #1
16 Intel(R) Management Engine Interface
16 Intel(R) Xeon(R) processor E3-1200 v3/4th Gen Core processor PCI Express x16 Controller - 0C01 (note: this is an i7, not a Xeon??)
16 Standard Enhanced PCI to USB Host Controller
17 High Definition Audio Controller
18 Asmedia 106x SATA Controller
18 Intel(R) 8 Series/C220 Series PCI Express Root Port #3 - 8C14
19 Intel(R) 8 Series/C220 Seruies SATA AHCI Controller - 8C02
22 High Definition Audio Controller
23 Standard Enhanced PCI to USB Host Controller
-5 AMD Radeon HD 5800 Series
-4 Intel(R) HD Graphics 4600
-3 Intel(R) USB 3.0 eXtensible Host Controller
-2 Intel(R) Ethernet Connection I217-V
Can anyone suggest what I might be able to do to reclaim the lost CPU power? I don't see any conflicts that might be the problem, and I sure don't know how to change PCI IRQs !
Note: my DPC latency is very low, and not causing an issue.
Full machine specs:
Asrock Z87 Extreme 4 motherboard
Intel i7 4770k processor, stock 3.5GHz but overclocked to 4.2GHz
32GB RAM (4 x 8GB)
Radeon HD5870
Samsung 840 EVO 120GB SSD
Intel Gen2 80GB SSD
Two Seagate SATA drives, a 320GB and a 1TB
Three external drives:
- WD 3TB
- Seagate 2TB
- Seagate 3TB
Standard keyboard / mouse
1280 x 1024 LG monitor
1920 x 1080 LG monitor
1680 x 1050 Samsung monitor
Anyone?