Review request for 6647068 & 6681796
Xiaobin Lu
Xiaobin.Lu at Sun.COM
Tue Jun 10 11:46:37 PDT 2008
Webrev:
http://javaweb.sfbay/~xl116366/webrev/6647068/
http://javaweb.sfbay/~xl116366/webrev/6681796/
Details:
CR 6647068: libjvm.so is not built PIC
During JDK 6 time frame, after the fat java project was rejected by the
client team, we (runtime team) decided to build non-PIC libjvm.so on
Linux x86 platforms and in the meantime, to speed up the relocation, we
hand picked a fixed virtual address which the libjvm.so is loading at.
Although most time this actually works fine, some customers complained
about the failure call to JNI_CreateJavaVM since that preferred address
was somehow used before the call. Ideally, the runtime loader could
choose another location to load libjvm.so when the preferred address has
been taken already. But unfortunately this can't be achieved currently.
So to make this work, we have to remove the preferred address built with
libjvm.so. This however will significantly increase the relocation cost
during application startup. So to compromise, I am using the same
mechanism as Solaris, partial PIC. This can keep the most of the
benefits of the non-PIC library and in the same time reduce some of the
relocation overheads due to the absence of the preferred base address. I
ran reference client in refworkload and noticed about 1.1% regression on
real footprint and about 3.06% regression on startup3. This is much
better than simply removing the preferred address.
CR 6681796:hotspot build failure on gcc 4.2.x (ubuntu 8.04) w/ openjdk6
The most recent GCC release (4.2.x) gives out warnings when it sees the
conversion from "const char*" to "char*". The default hotspot makefiles
use the -Werror flag, making warnings into errors and the build fails.
The fix in the webrev basically corrects these places in our code.
Reviewed by:
Verified by:
runThese full
Thanks,
-Xiaobin
More information about the hotspot-dev
mailing list