JDK-4343761 : Remove dead code pertaining to _lwp_{create,exit} interposition [appcert clean]
Type:Bug
Component:hotspot
Sub-Component:runtime
Affected Version:1.3.0
Priority:P1
Status:Closed
Resolution:Fixed
OS:generic,solaris_1
CPU:generic,sparc
Submitted:2000-06-06
Updated:2012-10-08
Resolved:2000-06-21
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.
Needed to pass appcert; else we have dependence on __lwp_create (for instance)
which appcert doesn't like. A pre-requisite to Solaris bundling.
Comments
CONVERTED DATA
BugTraq+ Release Management Values
COMMIT TO FIX:
kest-sol-beta2
FIXED IN:
kest-sol-beta2
INTEGRATED IN:
kest-sol-beta2
14-06-2004
WORK AROUND
Fail Appcert ;-)
11-06-2004
SUGGESTED FIX
Removal of dead code (code became dead when Peter Kessler removed the
use of interposition on these calls) fixes the symbol problem.
y.s.ramakrishna@eng 2000-06-14Date: Tue, 13 Jun 2000 15:34:48 -0700 (PDT)
From: "Y. S. Ramakrishna" <###@###.###>
To: ###@###.###
Subject: Code Manager notification
Mime-Version: 1.0
Event: putback-to
Parent workspace: /net/jano/export/disk05/hotspot/ws/1.3/solaris_baseline
(jano:/export/disk05/hotspot/ws/1.3/solaris_baseline)
Child workspace: /net/jano.eng/export/disk05/hotspot/imgr/ws/20000613122209.ysr.kestrel
(jano.eng:/export/disk05/hotspot/imgr/ws/20000613122209.ysr.kestrel)
User: ysr
Comment:
Original workspace: neeraja:/net/jde1/export/jtech1/ysr/kestrel
Parent workspace: /net/jano/export/disk05/hotspot/ws/1.3/solaris_baseline
Original user: ysr
4343761 Remove dead code pertaining to _lwp_{create,exit} interposition [appcert clean]
Appcert complains about the presence of __lwp_create among the
undefined symbols in our libjvm.so's. This is due to dead code
that did not get removed when the _lwp_create et al. interposition
was removed by Peter Kessler.
I removed the dead code. This is clearly a no-risk fix that will
allow us to pass appcert.
While making the above changes, I found some inconsistencies
in alternate signal stack maintenance, and fixed these.
These are mainly the removal of the redundant flag MightUseStackBanging
and consolidating the installation and removal of alternate signal
stacks into thread initialization and thread destruction respectively.
Added some asserts in the installation and removal methods to
check for consistency. Corrected some erroneous uses of UseStackBanging
flag to determine if alternate stacks should be used or not.
This putback thus fixes two other bugs that came in recently, namely:
4344558 1.3 beta2 failed VolanoMark with -server flag
4344615 Modena test with client in mixed mode throws an unexpected exception
Made UseStackBanging a develop flag. It defaults to true on Solaris
and false elsewhere. Changing this default setting causes errors
on both platforms, the latter somewhat worse than the former.
Much help/advice from Peter Kessler.
Approved for beta2 by jerryd.
Reviews: jbarrett, pbk*2, sgoldman
Tests: . Volano, Create2, SPEC (bound & unbound threads)
. test in bug report 4344615 on prescribed large machines
. various stack overflow tests (thanks to ajacobs, cox, jane,
jbarrett, pbk for contributing the tests)
. warm-and-breathing tests after last sync
Note: the memory leak, most clearly manifested on phalanx, running
Volano is orthogonal to this fix. Ken has almost fixed that.
Performance: 2% improvement in Volano is probably in the noise
(only 5 samples at 200 connections).
passed solaris i486 compiler1 SPECjvm98 GeoMean 22.91 26.98
passed solaris i486 compiler2 SPECjvm98 GeoMean 18.03 31.54
passed solaris i486 core SPECjvm98 GeoMean 50.43 50.43
passed solaris sparc compiler1 SPECjvm98 GeoMean 14.63 15.69
passed solaris sparc compiler2 SPECjvm98 GeoMean 13.17 23.25
passed solaris sparc core SPECjvm98 GeoMean 31.42 31.42
passed win32 i486 compiler1 SPECjvm98 GeoMean 29.51 34.06
passed win32 i486 compiler2 SPECjvm98 GeoMean 23.69 38.61
passed win32 i486 core SPECjvm98 GeoMean 75.26 75.26
Files:
update: src/os/solaris/vm/os_solaris.cpp
update: src/os/solaris/vm/os_solaris.hpp
update: src/os_cpu/solaris_i486/vm/os_solaris_i486.cpp
update: src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
update: src/share/vm/includeDB_core
update: src/share/vm/runtime/arguments.cpp
update: src/share/vm/runtime/arguments.hpp
update: src/share/vm/runtime/globals.cpp
update: src/share/vm/runtime/globals.hpp
update: src/share/vm/prims/jni.cpp
A few clean-ups (none semantic) recommended in a review were missed in
this putback and will be putback soon (re-using this bug-id).
11-06-2004
EVALUATION
y.s.ramakrishna@eng 2000-06-06: Fixed by removing dead code.
Testing fixed workspace. Fix is essentially zero-risk.
y.s.ramakrishna@eng 2000-06-12: Some inconsistencies in alternate signal
stack maintenance were found by code instapection while remving the
above dead code. These have been fixed and tests are in progress.
Changes will be put back by COB 12 June, and will probably appear in
_b20 build of beta2.
y.s.ramakrishna@eng 2000-06-21: Integrated in build 20 of Kestrel Solaris
beta (refresh).