The amount of RAM reported by the System Properties dialog box and the System Information tool is less than you expect after you install Windows XP Service Pack 2 (888137)



The information in this article applies to:

  • Microsoft Windows XP Home Edition Service Pack 2 (SP2)
  • Microsoft Windows XP Professional Service Pack 2 (SP2)

SYMPTOMS

After you upgrade to Microsoft Windows XP Service Pack 2 (SP2), the amount of memory that is reported in the System Properties dialog box or by the System Information tool (Msinfo32.exe) has changed. This symptom occurs if the following conditions are true:
  • Your Windows XP-based computer has 4 or more gigabytes (GB) of RAM.
  • Your Windows XP-based computer is using Physical Address Extension (PAE) mode.
Note PAE mode is enabled by adding the /pae parameter to your Boot.ini file in the root folder of your system drive.

For example, before you upgrade to Windows XP SP2, the System Properties dialog box may report approximately 3.87 GB of RAM. The System Information tool may report that the total physical memory is approximately 3,540.00 megabytes (MB). After you upgrade to Windows XP SP2, the System Properties dialog box may report approximately 3.12 GB of RAM, and the System Information tool may report that the total physical memory is approximately 2,770.00 MB.

Note If you disable PAE mode on a Windows XP-based computer that has 4 GB of RAM, the System Properties dialog box may report approximately 3.12 GB of RAM, and the System Information tool may report that the total physical memory is approximately 2,710.00 MB. The same values are reported after you upgrade to Windows XP SP2

CAUSE

This issue occurs because of a design change in Windows XP SP2. The changes were made to PAE mode behavior to improve driver compatibility.

To reduce driver compatibility issues, Windows XP Service Pack 2 includes hardware abstraction layer (HAL) changes that mimic the 32-bit HAL DMA behavior. The modified HAL grants unlimited map registers when the computer is running in PAE mode. Additionally, the kernel memory manager ignores any physical address that is greater than 4 GB. Any system RAM that is greater than the 4 GB barrier would be made unaddressable by Windows and be unusable in the system. By limiting the address space to 4 GB, devices with 32-bit DMA bus master capability will not see a transaction with an address that is greater than the 4 GB barrier. Because these changes remove the need to double-buffer the transactions, they avoid a class of bugs in some drivers that is related to the correct implementation of double buffering support.

MORE INFORMATION

PAE mode-induced driver compatibility issues

Driver compatibility issues with data execution prevention (DEP) are typically PAE mode-induced compatibility issues.

Note PAE is only required on computers with processors that support hardware-enforced DEP.

On its own, DEP might create compatibility issues with drivers that perform code generation or use other techniques to generate executable code in real time. Many drivers with such behavior would have been fixed because DEP is always on for drivers that are loaded on 64-bit versions of Windows. Therefore, there is no guarantee that all drivers have been updated. However, there are few drivers that use these techniques, and it is not expected that DEP alone will cause many driver compatibility issues.

The primary driver compatibility concern is running PAE mode on 32-bit computers. PAE mode enables processors to address more than 4 GB of memory. The primary difference between PAE memory paging and non-PAE memory paging schemes is the additional level of paging that is required in PAE mode. This is 3 levels of paging that is required in PAE mode instead of 2.

Some drivers might not load if PAE is enabled, because the device might not be able to perform 64-bit addressing or the drivers might assume that PAE mode requires more than 4 GB of RAM. Such drivers expect that they will always receive 64-bit addresses when in PAE mode and that they or their device are incapable of interpreting the address.

Other drivers might load in PAE mode but cause system instability by directly modifying system page table entries (PTEs). These drivers expect 32-bit PTEs, but receive 64-bit PTEs in PAE mode instead.

The largest driver PAE compatibility issue involves direct memory access (DMA) transfers and map register allocation. Many devices that support DMA, typically 32-bit adaptors, are not able to perform 64-bit physical addressing. When these devices run in 32-bit mode, the devices can address all physical address space. In PAE mode, data can be present at a physical address that is greater than 4 GB. To enable devices with these constraints to function in this scenario, the Windows 2000 Server family and later versions of Windows provide double-buffering for the DMA transaction. The Windows 2000 Server family and later versions of Windows do this by providing a 32-bit address that is indicated by a map register. The device can perform the DMA transaction to the 32-bit address and the kernel copies the memory to the 64-bit address that is provided to the driver. When the system runs with PAE disabled, drivers for 32-bit devices never require their map registers to be backed by real memory. This means that double-buffering is not required, because all devices and drivers are contained within the 32-bit address space. Based on testing of drivers for 32-bit devices on 64-bit processor-based computers, it is expected that most client-tested, DMA-capable drivers expect unlimited map registers.

For additional information about changes to functionality in Windows XP SP2, visit the following Microsoft Web site:

Modification Type:MinorLast Reviewed:11/25/2004
Keywords:kbtshoot KB888137 kbAudEndUser