RFR: JDK-8147026- Convert an assert in ClassLoaderData to a guarantee
Shafi Ahmad
shafi.s.ahmad at oracle.com
Tue Feb 16 09:41:36 UTC 2016
Hi All,
Please review the trivial change of replacing 'assert' by 'guarantee'
Summary: Having a guarantee in method "ClassLoaderDataGraph::find_or_create" ensuring that the classloader is a valid oop will help catch the errors at an early stage during the run rather than crashing the JVM later on in the GC.
Open webrev: http://cr.openjdk.java.net/~csahu/8147026/webrev.00
Bug link: https://bugs.openjdk.java.net/browse/JDK-8147026
Testing: JPRT
Since we are changing 'assert' by 'guarantee' which will add few instruction into code in product build and I am not sure about the *hotness* of this method.
So I run the performance test [refworkload] to make sure the impact of this change in the product build.
I am attaching the performance run report for your reference.
Regards,
Shafi
-------------- next part --------------
Property file used:
===================
bash-3.2$ cat properties.clean
j2se.home=/tmp/shafi/Clean/
resultsdir=/tmp/shafi/logs.clean
benchmarks=scimark jetstream specjbb2000 specjvm98 volano25
volano.debug=true
scimark.timeout=60
specjvm98.timeout=60
specjbb2005.timeout=90
specjbb2000.timeout=90
volano25.timeout=60
jetstream.timeout=10
specjbb2005.mode=custom
specjbb2005.results_mode=last_warehouse
specjbb2005.warehouse_sequence=1 2 3 4 5 6 7 8
j2se.optons=-d64 -Xmx4g -Xms4g
iterations=3
std output for clean run:
=========================
bash-3.2$ cat clean
Using properties in properties.clean
Unknown property: j2se.optons, ignored
Warning: component property should be set: assuming j2se
Warning: /tmp/shafi/Clean//bin/javaws not found:
check j2se.home or j2se.javaws
Warning: /tmp/shafi/Clean//bin/javaws not found:
check j2se.home or j2se.javaws
Running Reference Workload Version 0.85beta1
Nightly bundle: Thu Feb 11 03:03:42 PST 2016
Results will be stored in /tmp/shafi/logs.clean
Using collectors: core hserr perfdata
Running in warm mode
Running scimark iteration=1
Running scimark iteration=2
Running scimark iteration=3
Running jetstream iteration=1
Running jetstream iteration=2
Running jetstream iteration=3
Running specjbb2000 iteration=1
Running specjbb2000 iteration=2
Running specjbb2000 iteration=3
Running specjvm98 iteration=1
Running specjvm98 iteration=2
Running specjvm98 iteration=3
Running volano25 iteration=1
Running volano25 iteration=2
Running volano25 iteration=3
==============================================================================
/tmp/shafi/logs.clean:
Benchmark Samples Mean Stdev Geomean Weight
jetstream 3 18.93 1.95
Copy 3 565.67 184.80
Parse 3 629.00 33.96
Read 3 190.33 12.66
Write 3 1208.67 38.99
rw.runtime 3 26.67 0.58
scimark 3 16.23 0.20
FFT 3 7.77 0.11
LU 3 20.28 0.13
Monte 3 14.06 0.13
SOR 3 22.93 0.12
Sparse 3 16.11 0.87
rw.runtime 3 67.67 2.31
specjbb2000 3 39881.35 4203.83
First_Warehouse 3 6375.15 46.90
Last_Warehouse 3 39881.35 4203.83
rw.runtime 3 641.67 3.79
specjvm98 3 39.56 0.75
compress 3 60.09 4.31
db 3 22.89 0.83
jack 3 48.67 0.75
javac 3 27.88 0.87
jess 3 49.40 1.11
mpegaudio 3 25.57 0.36
mtrt 3 64.45 0.75
rw.runtime 3 721.33 17.56
volano25 3 66080.67 932.11
connections 3 400.00 0.00
rw.runtime 3 43.00 0.00
time 3 12.11 0.17
==============================================================================
std output for change run:
=========================
bash-3.2$ cat change
Using properties in properties.change
Unknown property: j2se.optons, ignored
Warning: component property should be set: assuming j2se
Warning: /tmp/shafi/Change//bin/javaws not found:
check j2se.home or j2se.javaws
Warning: /tmp/shafi/Change//bin/javaws not found:
check j2se.home or j2se.javaws
Running Reference Workload Version 0.85beta1
Nightly bundle: Thu Feb 11 03:03:42 PST 2016
Results will be stored in /tmp/shafi/logs.change
Using collectors: core hserr perfdata
Running in warm mode
Running scimark iteration=1
Running scimark iteration=2
Running scimark iteration=3
Running jetstream iteration=1
Running jetstream iteration=2
Running jetstream iteration=3
Running specjbb2000 iteration=1
=========== TIMEOUT ===========
specjbb2000 has exceeded 90 minutes - terminated
chmod: WARNING: can't access /export5/users/shshahma/refworkload/benchmarks/specjbb2000/results
mv: cannot access /export5/users/shshahma/refworkload/benchmarks/specjbb2000/results
Running specjbb2000 iteration=2
Running specjbb2000 iteration=3
Running specjvm98 iteration=1
Running specjvm98 iteration=2
Running specjvm98 iteration=3
Running volano29 iteration=1
Running volano29 iteration=2
Running volano29 iteration=3
==============================================================================
/tmp/shafi/logs.change:
Benchmark Samples Mean Stdev Geomean Weight
jetstream 3 20.16 0.34
Copy 3 439.33 28.02
Parse 3 621.00 4.36
Read 3 188.33 2.08
Write 3 1180.67 26.31
rw.runtime 3 27.67 0.58
scimark 3 16.14 0.07
FFT 3 7.79 0.26
LU 3 20.41 0.19
Monte 3 13.40 0.63
SOR 3 22.47 0.13
Sparse 3 16.63 0.47
rw.runtime 3 69.33 0.58
specjbb2000 3 42773.46 5637.47
First_Warehouse 3 6718.81 214.49
Last_Warehouse 3 42773.46 5637.47
rw.runtime 3 2225.33 2751.07
specjvm98 3 41.50 0.19
compress 3 64.15 0.54
db 3 23.69 0.20
jack 3 50.79 0.35
javac 3 29.41 0.38
jess 3 52.55 0.35
mpegaudio 3 26.32 0.02
mtrt 3 67.52 2.06
rw.runtime 3 681.67 0.58
volano29 3 100715.67 1377.40
connections 3 400.00 0.00
rw.runtime 3 344.00 4.36
time 3 317.77 4.37
==============================================================================
std output of ./comare script
=============================
bash-3.2$ ./compare -rr /tmp/shafi/logs.clean /tmp/shafi/logs.change
==============================================================================
/tmp/shafi/logs.clean:
Benchmark Samples Mean Stdev Geomean Weight
jetstream 3 18.93 1.95
Copy 3 565.67 184.80
Parse 3 629.00 33.96
Read 3 190.33 12.66
Write 3 1208.67 38.99
rw.runtime 3 26.67 0.58
scimark 3 16.23 0.20
FFT 3 7.77 0.11
LU 3 20.28 0.13
Monte 3 14.06 0.13
SOR 3 22.93 0.12
Sparse 3 16.11 0.87
rw.runtime 3 67.67 2.31
specjbb2000 3 39881.35 4203.83
First_Warehouse 3 6375.15 46.90
Last_Warehouse 3 39881.35 4203.83
rw.runtime 3 641.67 3.79
specjvm98 3 39.56 0.75
compress 3 60.09 4.31
db 3 22.89 0.83
jack 3 48.67 0.75
javac 3 27.88 0.87
jess 3 49.40 1.11
mpegaudio 3 25.57 0.36
mtrt 3 64.45 0.75
rw.runtime 3 721.33 17.56
volano25 3 66080.67 932.11
connections 3 400.00 0.00
rw.runtime 3 43.00 0.00
time 3 12.11 0.17
==============================================================================
/tmp/shafi/logs.change:
Benchmark Samples Mean Stdev %Diff P Significant
jetstream 3 20.16 0.34 6.49 0.390 *
Copy 3 439.33 28.02 22.33 0.358 *
Parse 3 621.00 4.36 1.27 0.724 *
Read 3 188.33 2.08 1.05 0.811 *
Write 3 1180.67 26.31 2.32 0.368 *
rw.runtime 3 27.67 0.58 -3.75 0.000 Yes
scimark 3 16.14 0.07 -0.51 0.547 *
FFT 3 7.79 0.26 0.32 0.890 *
LU 3 20.41 0.19 0.62 0.408 *
Monte 3 13.40 0.63 -4.69 0.207 *
SOR 3 22.47 0.13 -2.00 0.012 *
Sparse 3 16.63 0.47 3.24 0.427 *
rw.runtime 3 69.33 0.58 -2.46 0.337 *
specjbb2000 3 42773.46 5637.47 7.25 0.519 *
First_Warehouse 3 6718.81 214.49 5.39 0.103 *
Last_Warehouse 3 42773.46 5637.47 7.25 0.519 *
rw.runtime 3 2225.33 2751.07 -246.81 0.424 *
specjvm98 3 41.50 0.19 4.90 0.039 *
compress 3 64.15 0.54 6.76 0.243 *
db 3 23.69 0.20 3.51 0.230 *
jack 3 50.79 0.35 4.36 0.025 *
javac 3 29.41 0.38 5.49 0.077 *
jess 3 52.55 0.35 6.38 0.030 *
mpegaudio 3 26.32 0.02 2.95 0.066 *
mtrt 3 67.52 2.06 4.76 0.111 *
rw.runtime 3 681.67 0.58 5.50 0.059 *
Error comparing /tmp/shafi/logs.change:
baseline and specimen must have the same name
==============================================================================
More information about the hotspot-runtime-dev
mailing list