Performance counter value may unexpectedly leap forward (274323)
The information in this article applies to:
- Microsoft Win32 Application Programming Interface (API)
This article was previously published under Q274323 SYMPTOMS
The result that is returned by the QueryPerformanceCounter function may unexpectedly leap forward from time to time. This leap may represent several seconds.
CAUSE
This problem occurs as a result of a design defect in the peripheral component interconnect (PCI) to Industry Standard Architecture (ISA) bridge of some chipsets. This bridge is commonly referred to as the south bridge. The jump occurs under a heavy PCI bus load, when the operating system receives a series of unexpected results from the bridge. The operating system detects the unexpected results and computes an amount to add to the performance counter. This causes the returned result from QueryPerformanceCounter to jump forward.
RESOLUTION
Programs should watch for an unexpected jump by comparing the change in time as determined by successive calls to QueryPerformanceCounter with the change in time as determined by successive calls to the GetTickCount function. If there is a significant jump that is based on QueryPerformanceCounter(), but no similar increase that is based on GetTickCount, then it can be assumed that the performance counter just jumped forward. The code sample at the end of this article demonstrates how to do this.
STATUS
This operating system's behavior is by design. The performance counter adjustment is necessary when the operating system obtains unreliable data from the chipset.
Modification Type: | Major | Last Reviewed: | 5/19/2005 |
---|
Keywords: | kbAPI kbKernBase kbPerfMon kbprb kbSCRAPKeep KB274323 |
---|
|