JDK-7065535 : Mistyped function name that disabled UseLargePages on Windows
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 6u27
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_2000
  • CPU: generic
  • Submitted: 2011-07-11
  • Updated: 2012-10-08
  • Resolved: 2011-07-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 JDK 8 Other
6u27 b06Fixed 7u2Fixed 8Fixed hs20.2Fixed
Description
Hotspot dynamically loads advapi32.dll and discovers LookupPrivilegeValue function for enabling UseLargePages commandline option. However, LookupPrivilegeValue has two versions, LookupPrivilegeValueA and LookupPrivilegeValueW. For Hotspot, it should use LookupPrivilegeValueA version.

6u27 missed "A" at the end of function name, that caused function can not be allocated, which will disable "UseLargePages" option.

This can be the root that causes 9% performance regression on SPECjbb2005, discovered by Intel.
Be aware, UseLargePages commandline option requires a special security permission on local machine, please refer to comments in os_windows.cpp for how to set it up.

Comments
EVALUATION http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/279ef1916773
18-08-2011

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/279ef1916773
16-08-2011

EVALUATION Fix of CR 7032591 caused this regression.
21-07-2011

EVALUATION As mentioned in bug report, Advapi32Dll::LookupPrivilegeValue should use LookupPrivilegeValueA for function pointer.
11-07-2011