2012/08/28 13:12:28
Goddard
jcschild


Hpet:  in a nut shell so all can understand

You turn that off because it allows the C state changes to happen at a much faster interval. 
Um, perhaps you're confused? (Although, if C-state transitioning is going to be permitted, then faster C-state transitioning probably is desirable for performance anyway.)

The timing (duration) between evaluations of the Windows 7 PPM (processor power management) processor idle state (C-state) algorithm is set in a policy setting called "Processor Idle Time Check"at a value between 1 and  200,000 microseconds (us)). HPET being on or off doesn't change this value or the duration between C-state evaluations.


Transitioning between C-states (demotion/promotion) is based on thresholds of percentage of processor idleness set in other respective PPM policy settings. HPET being on or off does not change those settings.


See: http://msdn.microsoft.com...dows/hardware/gg566941

It also allows Drivers to interrupt the CPU every 1ms instead of 10 ms.
How is that? Which drivers?


HPET being enabled can result in a slight increase in  DPC latency, although this merely reflects that the system is performing more effectively (because of more precise timing), and should not negatively impact performance, but rather should enable enhanced performance (although it can also expose obsolete or poorly written timing routines in application and driver code).


Moreover, merely setting HPET to ON in the BIOS may not mean that the OS is actually even utilizing the HPET for performance/power management but may still be using instead the less precise default ACPI power management timer, especially if HPET was disabled in BIOS when Windows was installed. In order to ensure that the HPET is actually being utilized by the OS, it may be necessary to edit the bcd to set the value for "useplatformclock" to "true".


Unfortunately, even when HPET is utilized, Windows 7 may not be able to perform as well for audio streaming as Vista, since MS have removed performance settings in Windows 7 in favor of reducing power consumption. See for example MMCSS "Clock Rate" here: 
http://msdn.microsoft.com...684247%28VS.85%29.aspx


2012/08/28 15:25:33
Jonbouy

Moreover, merely setting HPET to ON in the BIOS may not mean that the OS is actually even utilizing the HPET for performance/power management but may still be using instead the less precise default ACPI power management timer, especially if HPET was disabled in BIOS when Windows was installed. In order to ensure that the HPET is actually being utilized by the OS, it may be necessary to edit the bcd to set the value for "useplatformclock" to "true".


Not entirely accurate, if 'useplatformclock' is not set via BCEDIT then if the HPET is on in the BIOS the OS has a choice between the TSC and HPET.  Disabling it BIOS and 'useplatformclock' not set will use LAPIC and TSC.  Setting "usepaltformclock" will merely enforc LAPIC with HPET disabled or HPET if it is enabled in the BIOS.


The TSC on newer Intel chipsets is quick because the value is derived from the chips register rather than being read from memory it is likely that the near realtime operation required by Audio drivers will mostly use the register based TSC to directly hit the hardware, so if very low-latency is paramount then turn off HPET in the BIOS.  The HP in HPET doesn't mean High Performance remember it means High Precision. Also remember that driver writers are optimising for the hardware not the Windows API.

As you rightly stated the C-states are indeed governed by the 'Processor Idle Time Check' whose duration won't change but the response time from the register based counter is quicker than the one being read from memory.

So if near realtime latency is a concern then disable HPET, if the driver writers have done their work well.

HTH
2012/08/28 18:19:11
ECBowen
The PPM policy settings are set in the OS and updated via the Intel management engine. The HPET does effect the clock generation time period that any device, process, or service can interrupt the CPU for processing time. Where do you think the PPM or any Power management policies are outside of this since they are essentially part of the OS threading/interrupts through the HAL. Almost every device out there now including video cards, network adapters, combo controllers on laptops that include card reader controllers, USB controllers, Firewire controllers and storage controllers have power management features with the drivers/firmware. They are now able to interrupt as frequent as the clock generator allows them. The HPET clock generator allows interrupt cycles at a much lower interval which means these devices can interrupt for state change far more often. Whether you think theoretically this should not be the case or not does not change the observable results. When we have the HPET time enabled these devices are constantly interrupting the CPU likely for PPM policy requests. This is easily observable via DPC latency Timer or Latmon and is far more of a problem with Laptops which obviously have far more Power Management. This is how device manufacturers are implementing lower power consumption policies. When HPET can be disabled in the BIOS, many of these DPC issues go away or atleast spike far less frequently. Drivers from J-Micron, Nvidia, and Realtek are the most notorious for this.
 

C-States changes for some CPU state changes may be tied strictly to the time check value but not all of them. The Intel Management Engine is updating constantly from the C State changes and that is causing DPC spikes all over the place depending on the board’s implementation of the IME. If the board has the option to disable the HPET, then those DPC spikes disappear. So once again theoretical is different than implementation. You can also duplicate the same effect by disabling C-States and Turbo in the bios and leave the HPET on. Regardless of what you think, the C-State changes with the CPU are causing the DPC spikes via the HPET allowing the IME to interrupt far to often. This was once again the results of significant testing with latmon and boards that did not work well for audio as the bios was implemented at the time. I also never could get clear responses from the engineers for those boards as to why the IME was interrupting so often. Only the CPU state changes for Turbo would even use that kind of IME update frequency. The only verification I received from the engineers was they were looking at the IME.
 

The comments on HPET may not even be enabled really have no bearing here and I am not sure why you brought these up. Obviously HPET is supported in the OS at the time I am testing if I disable that and the DPC spikes go away. Obviously they are involved with C State changes even if it’s strictly tied to the IME updating if I disable C-States and Turbo and the spikes go away while the HPET is on.
2012/08/28 19:07:14
Jonbouy
The comments on HPET may not even be enabled really have no bearing here and I am not sure why you brought these up.


I'm taking it you are talking to 'Goddard' here as I already explained why it has no bearing here.
2012/08/28 19:17:21
jbow
I read all this thread and I don't feel any smarter. I thinkI will just go with set for best performance.
I am reading a Waverley by Sir Walter Scott, it isn't easy reading but it is easier reading than this thread. Maybe I r a dummy.

I follow this rule... if it ain't broke, I don't try to fix it (been there done that, never turns out good)... and it don't seem to be broke here.

Jon makes sense to me. I can understand, "hey, this works".

J
2012/08/28 19:22:32
Jonbouy
So to recap after the testing done when my machine was built (1155) it was decided the best option was to leave core parking, turbo, hyperthreading and speed step alone, and to turn off HPET in BIOS.

Now I'm not a particularly technical guy but that yeilded the best results for me for Audio Performance and would you look at all the science that's been quoted mean-time and it looks like I pretty much figured it out by looking at the figures I was getting.

I'm quite chuffed about that really as it's an encouragement to go along with the actuals that I see rather than the conflicting theories I hear.
2012/08/28 21:01:53
jbow
Chuffed?

OK I Googled HPET in BIOS? Maybe I will experiment with it on/off.
 
Thanks Jon!
 
Julien
2012/08/30 18:10:47
jcschild
well? no more debate??  thought so..
2012/08/30 18:58:47
Alegria
Patience is a virtue my very childish pedawan. 


And I thought that using more than 1 alias was forbidden by the TOS? What say you Scott Reams?
2012/08/30 22:54:33
slartabartfast
So to recap after the testing done when my machine was built (1155) it was decided the best option was to leave core parking, turbo, hyperthreading and speed step alone, and to turn off HPET in BIOS.



Just to be clear leaving something alone means leaving it enabled?
© 2025 APG vNext Commercial Version 5.1

Use My Existing Forum Account

Use My Social Media Account