I've been doing some more experimenting with HPET timer settings vs. DPC latency on my systems.
- With HPET enabled in both BIOS and OS, idle DPC latency is in the 20-30us range, and generally does not move much under load.
- With HPET enabled in BIOS, but not in Windows, idle DPC latency is in the 5-8us range on my ASUS board (p9X79 WS), and 0-2us on my Gigabyte boards (X58A-UD5 and X79S-UP5-WIFI). Load goes to 20-35us on the ASUS, and stays almost the same as idle on the Gigabyte with the exceptions of rare spikes into the 30-40us.
- With HPET disabled in both BIOS and Windows, idle DPC latency is 0-2us on both brands, load is similar to the above.
Now the real fun starts when I run apps that poll the systems super I/O chip and EPU/VRM controllers:
With HPET fully enabled, programs like HWmonitor, CPU-Z, and just about any other monitoring software produce very frequent spikes into the 300-700us range.
With it HPET fully disabled, spikes only occur once every few minutes, and are of much lower magnitude, about 200-300us.
With regard to differences between the boards, it seems as though the ASUS monitoring chips (Nuvoton et al) produce much more latency while HPET is enabled than the iTE chip on the Gigabyte boards. However, when HPET is completely disabled, the balance shifts back in ASUSes favor.
I never had to disable HPET on my Gigabtye boards, but it seems like a wise thing to do with ASUS. Also, if HPET is necessary for some application, it's critical that any polling of temp/rpm sensors or the like be paused when doing latency sensitive tasks.
...rightful liberty is unobstructed action according to our will within limits drawn around us by the equal rights of others. I do not add 'within the limits of the law,' because law is often but the tyrant's will, and always so when it violates the right of an individual. -- Thomas Jefferson