Home Computer Audio Asylum

Music servers and other computer based digital audio technologies.

RE: It's (never) really (that) simple...

[2011-05-26: updated for clarity]

Hi theob

Thanks for the quick - and encouraging - reply. No other WiseOwls have chimed in, so I took another stab at understanding the variables, before "just trying it".

(Actually, I did add the switch by itself to my boot.ini weeks ago, and like the change it makes... BUT I want to understand more of what's going on).

OK... today's Search-n-Read-n-Ponder expedition suggests there are two different mechanisms at work:

a) greater timing accuracy using the ACPI Power Management timer ("/UsePMTimer" switch)

b) toggling the effect of the ACPI Processor Performance States policy (KB896256 patch)

MS KB Articles

1) MS Article ID: 835730 - Last Review: August 29, 2007 - Revision: 4.3 [ >> please ignore <<< ]

This article talks about "On a Microsoft Windows XP- or Microsoft Windows 2000-based computer that uses Intel® HyperThreading Technology or Enhanced SpeedStep® Technology, blah blah blah..." / "This problem is caused by the incorrect interpretation of the timing values that are returned by the system when hyperthreading is enabled, and the computer power state changes."

The instructions for Windows 2000 require manual intervention (add registry key and "/UsePMTimer" switch boot.ini) , but make no such requirement for WinXP. Later the article states "This problem was first corrected in Microsoft Windows XP Service Pack 2". Curiously, XP-SP2 does not add the switch as part of the upgrade.

>> KB835730 is a red herring as regards cMP^2 under XP, and the Core 2 Duo (and beyond) CPUs - please ignore <<

=======================================================

2) Article ID: 895980 - Last Review: December 5, 2010 - Revision: 10.0 [tell XP to use ACPI Power Management timer]

This article mentions a possible issue saying "A program that uses the QueryPerformanceCounter function to query system time may perform poorly... / Multi core or multiprocessor systems may encounter Time Stamp Counter (TSC) drift when the time between different cores is not synchronized. The operating systems which use TSC as a timekeeping resource may experience the issue. Newer operating systems typically do not use the TSC by default if other timers are available in the system which can be used as a timekeeping source. Other available timers include the PM_Timer and the High Precision Event Timer (HPET)."

For greater precision in your cMP rig, tell XP to use the PM_Timer. The Workaround section describes how to add the "/UsePMTimer" switch to the boot.ini file. BTW, there is no mention of SP2/SP3 being required for this change to take effect.

=======================================================

3) MS Article ID: 896256 - Last Review: February 22, 2011 - Revision: 7.0 [toggle ACPI processor performance states policy]

This hotfix was written prior to SP3, and applies only to XP-SP2 installations. If you have SP2, you should download and execute the patch "WindowsXP-KB896256-v4-x86-ENU.exe".

The 896256 hotfix was rolled into XP-SP3 (see full list here http://support.microsoft.com/kb/946480), so if you have XP-SP3 - do not apply this patch - the "new" Performance States policy is already in effect.

Once you're sure the hotfix is resident in your system, you may want to disable the policy and evaluate the change - just to be sure your SQ is being maximized. See the end of the KB article for how to do this.

But wait... for a deeper understanding (and a little mystery) - There's More !

What's in SP2 already:
According to the article, "Because Windows XP was not originally designed to support performance states on multiprocessor configurations, changes are required to correctly realize this support on multiprocessor systems. Windows XP Service Pack 2 includes the required changes to the kernel power manager. These changes make sure that Windows XP correctly functions on multiprocessor systems with processor performance states".

To SP2 code we now add the Hotfix:
"This hotfix (896256) also addresses the following issues on computers that have multiple processors that support processor performance states:

- A possible decrease in performance on single-threaded workloads when processor performance states are using demand-based switching.
- The synchronization of the processor Time Stamp Counter (TSC) registers across processors when you use the ACPI Power Management timer on multiprocessor systems.
- ACPI C-state promotion and demotion issues in the kernel power manager.
"

Due to the point in bold above, you should apply the patch if you are still at SP2, and ensure the TSC registers are coordinated in your system.

Whether or not you have applied the XP-SP3 update, you still have to add the "/UsePMTimer" switch to boot.ini manually.

[BTW, this so-called "multiprocessor hotfix in XP-SP2" has been much discussed in other forums - see -> http://duc.avid.com/showthread.php?t=222685]

=======================================================

Soooo... today I added the Throttle key, enabled it (value = 1), and was greeted by an immediate change to the sound. Then I disabled it (value = 0), and the sound returned to it's previous qualities. No drivers updated, no Hotfix applied, just the regkey to switch the policy behaviour of the OS (with the requisite reboots, of course).

Most peculiar results, if we believe MS that KB896256 ADDS to what is already working in SP2. The question becomes what was my regkey controlling if the kernel changes were not made for the "new" policy ?

I checked the file versions (hal.dll, Ntkrnlpa.exe, Ntoskrnl.exe), which show I don't have the updated components - yet the SQ change is obvious.

Hmmm - more "undocumented features" ? I need to install this patch !

=======================================================

Summary:
Go nuts tinkering.

The "/UsePMTimer" switch has an effect on it's own, and will change SQ independently of the Throttle regkey setting.

Keep in mind, to experience KB896256 properly, you should have added "/UsePMTimer" to your boot.ini file.

My first impression of the "Throttle Effect" (despite not having applied the KB896256 patch !):
it creates a more immediate presentation... "the stage" comes a little forward and fine details/ textures are revealed to a greater degree.

On first acquaintance I like it, but extended listening is needed to judge if it's better - or just different. And once my system has the patch properly applied, it could be a whole new world. Or maybe not.

Try it and report what you hear !

Cheers,
Grant

That's not a Toy... IT'S A TOOL !!



Edits: 05/23/11 05/26/11

This post is made possible by the generous support of people like you and our sponsors:
  Schiit Audio  


Follow Ups Full Thread
Follow Ups

FAQ

Post a Message!

Forgot Password?
Moniker (Username):
Password (Optional):
  Remember my Moniker & Password  (What's this?)    Eat Me
E-Mail (Optional):
Subject:
Message:   (Posts are subject to Content Rules)
Optional Link URL:
Optional Link Title:
Optional Image URL:
Upload Image:
E-mail Replies:  Automagically notify you when someone responds.