Microsoft driver bug saps Core Duo power

The scheduler that won't stop

Earlier this week, Greg Myers, Intel's product marketing manager for Core Duo, told us "We believe we have properly implemented the USB 2.0 power management across Centrino, including support for the chipset family 945 and ICH-7." He argued that the guidelines for USB 2.0 technology apply to multiple devices simultaneously. "Each single piece has to power-manage USB 2.0 correctly," he said. "If one of the pieces is not correctly implemented, the whole system will be impacted."

The specific piece which Intel and Microsoft now say is responsible for the power drain is Windows' Advanced Configuration and Power Management Interface (ACPI) driver, which is a software component provided through the operating system. This is the component responsible for instructing a device to power down when it is not in use. Under ACPI, there is a series of sleep states that the operating system's ACPI driver recognizes and supports. Hardware manufacturers such as IBM must build their external devices to support the sleep states that the ACPI driver recognizes; manufacturers cannot expect to implement their own proprietary drivers, while still expecting the computer to be able to fully support all USB devices that could be connected to it. Microsoft provides the ACPI driver for Windows which manufacturers rely upon as the reference driver - the software component with which their hardware must deal, if their setup is to be expected to work.

Since Microsoft's drivers are now believed to be directly involved, then all of Apple's upcoming MacBook Pro systems - which use the Core Duo processor and 945 chipset - should be unaffected by this issue. We have yet to attain access to a MacBook Pro to verify this.

To make certain the power drain problem was unrelated to the external drive, Tom's engineers ran the same battery of tests as with the Asus notebooks, on a pre-production sample of MSI's Megabook S270. This is an ultra-portable notebook system with an AMD Sempron 3000+ CPU, and which uses ATI's Radeon RS480/SB400 chipset. Its battery capacity is 26 Wh (design capacity 30 Wh); and CPU load, based on a read of Windows Task Manager, was 3 - 4%. Current drain on the USB port was 170 mA - the same figure as for both Asus systems.

In the first run, using Mobilemark 2005 and with no external USB device connected, battery life was clocked at 1 hour, 26 minutes. For the second run, we connected the same IBM external drive we used before. In that instance, battery life only diminished to 1:12 - a 16% drop, compared to the 44% drop measured when the same drive is connected to the Core Duo/945 GM unit.

Late this afternoon, representatives from Intel contacted Tom's Hardware Guide's Munich Labs, stating they believed the significantly reduced battery could have occurred because hardware in the Napa platform may be exhibiting problems reaching its deeper sleep states - which are regulated by Microsoft's ACPI driver. Then, at about a quarter-to-five Eastern time, Microsoft apparently lifted a confidentiality agreement on its Knowledge Base article and Intel was able to provide its contents to TG Daily.

The issue, according to Microsoft, concerns the asynchronous scheduler component - a part of the USB 2.0 driver that determines when devices can access local memory. With the revision to that driver implemented in Windows XP Service Pack 2, the scheduler can inadvertently be left running. As a result, Windows' internal task scheduler (a separate item) treats the asynchronous scheduler as a running process involving the attached device, and thus stops itself from ever giving the processor the signal to power down, or power lower - to slip into one of its ACPI sleep states. Because the scheduler is running, Windows thinks the system is continually busy. As a result, the computer can use more battery power.