RFR(L) 8153224 Monitor deflation prolong safepoints
Daniel D. Daugherty
daniel.daugherty at oracle.com
Mon Apr 15 17:42:43 UTC 2019
Claes,
Thanks for the pointers on SPECjbb2015...
On 4/11/19 5:43 AM, Claes Redestad wrote:
> Hi Dan,
>
> critical-jOPS in SPECjbb2015 is designed to be sensitive to regressions
> in latency of the benchmark operations, sometimes to a fault. So keep in
> mind that what you're seeing could very well be attributed to noise.
> Such as an accidental result of pauses happening - by chance or design -
> when the benchmark is critically assessing latency SLAs.
>
> Correlating safepoint pauses across the benchmark run with benchmark
> logs might inform if there's an increase in spikes/latencies during
> sensitive phases of the benchmark that could contribute to a sustained
> critJOPS regression.
>
> Sample questions to answer:
> - is the time spent deflating more spread out before/after?
> - is there indication of back-to-back safepoints happening?
We're making non-trivial changes in the CR1 round so I'll have to redo
all the testing (stress and SPECjbb2015). Thanks for giving me things
to think about...
I'll likely have more questions down the road.
Dan
>
> Thanks!
>
> /Claes
>
> On 2019-04-10 21:24, Daniel D. Daugherty wrote:
>> So I’ve been analyzing monitorinflation logs from SPECjbb2015 runs. It
>> takes about 45 minutes for a SPECjbb15 run to finish on my Linux box.
>>
>> In the baseline bits:
>> Total deflating time: 0.9314706 secs.
>> Total deflating count: 2582566
>>
>> In the v2.00 bits:
>> Total deflating time: 1.5767698 secs.
>> Total deflating count: 2505602
>>
>> Yes, that is 1 second in 45 minutes for the baseline and 1.6 seconds
>> in 45 minutes for the v2.00 bits. That strongly indicates that the
>> mechanics of async monitor deflation is not the cause of the 4.5%
>> slowdown in SPECjbb2015. It must be something else...
>>
>> I'm looking at safepoint stats next...
>>
>> Dan
>>
>>
>> On 4/8/19 12:55 PM, Daniel D. Daugherty wrote:
>>> Greetings,
>>>
>>> I took the last repo that I ran through Mach5 tier[1-8] testing and did
>>> 10 SPECjbb2015 runs on the 'release' version of those bits. I also did
>>> 10 SPECjbb2015 runs on the 'release' version of the baseline bits.
>>>
>>> Baseline: jdk-13+13
>>> Exp: v2.00 (8153224-webrev/3-for-jdk13) plus
>>> special-cleanup-for-global-in-use-list
>>>
>>> Linux-X64 Machine:
>>> - Ubuntu 16.04, Dell T7600, 64GB RAM
>>> - Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz, 2 CPUs x 8 cores x 2
>>> threads
>>>
>>> MacOSX Machine:
>>> - MacOS 10.13.6, Mac Mini, mid 2011, 16GB RAM
>>> - 2 GHz Intel Core i7 (I7-2635QM), 1 CPU x 4 cores x 2 threads
>>>
>>> Solaris-X64 Machine:
>>> - Solaris 11.2 SRU5.5, Dell T7600, 64GB RAM
>>> - Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz, 2 CPUs x 8 cores x 2
>>> threads
>>>
>>> Average Results for Each OS
>>>
>>> hbIR hbIR
>>> (max attempted) (settled) max-jOPS critical-jOPS run_name
>>> --------------- --------- -------- ------------- --------
>>>
>>> 23838.00 22446.90 20738.80 6166.70 Linux-X64 base
>>> 23838.00 22279.40 20262.00 5891.50 Linux-X64 exp
>>>
>>> 5841.80 4885.00 4764.00 1495.10 MacOSX base
>>> 5621.00 4701.00 4778.00 1492.10 MacOSX exp
>>>
>>> 16125.20 13852.30 12780.50 2791.90 Solaris-X64 base
>>> 15788.70 13861.40 12551.40 2665.90 Solaris-X64 exp
>>>
>>> I'm new to SPECjbb2015 so I don't what "hbIR" and "jOPS" are yet.
>>> Based a bit of googling so far, it appears that for critical-jOPS,
>>> higher is better:
>>>
>>> - Linux-X64 exp critical-jOPS is ~4.5% lower than Linux-X64 base
>>> - MacOSX base and MacOSX exp critical-jOPS are almost identical
>>> - Solaris-X64 exp critical-jOPS is ~4.5% lower than Linux-X64 base
>>>
>>> I have not tried to research or analyze the other columns yet.
>>>
>>> The results for each of the 10 runs are shown below.
>>>
>>> Dan
>>>
>>>
>>>
>>> Linux-X64 Runs
>>>
>>> hbIR hbIR
>>> (max attempted) (settled) max-jOPS critical-jOPS run_name
>>> --------------- --------- -------- ------------- --------
>>> 23838 22719 19070 6515
>>> SPECjbb2015.Lin-X64.base.01
>>> 23838 21642 20262 5591
>>> SPECjbb2015.Lin-X64.base.02
>>> 23838 23108 20262 6508
>>> SPECjbb2015.Lin-X64.base.03
>>> 23838 21730 21454 6235
>>> SPECjbb2015.Lin-X64.base.04
>>> 23838 22220 21454 6028
>>> SPECjbb2015.Lin-X64.base.05
>>> 23838 22543 20262 5996
>>> SPECjbb2015.Lin-X64.base.06
>>> 23838 23014 21454 6192
>>> SPECjbb2015.Lin-X64.base.07
>>> 23838 22543 21454 5889
>>> SPECjbb2015.Lin-X64.base.08
>>> 23838 22750 20262 6038
>>> SPECjbb2015.Lin-X64.base.09
>>> 23838 22200 21454 6675
>>> SPECjbb2015.Lin-X64.base.10
>>> --------------- --------- -------- ------------- --------
>>> 23838.00 22446.90 20738.80 6166.70 average of values
>>>
>>> hbIR hbIR
>>> (max attempted) (settled) max-jOPS critical-jOPS run_name
>>> --------------- --------- -------- ------------- --------
>>> 23838 21422 20262 6329
>>> SPECjbb2015.Lin-X64.exp.01
>>> 23838 22543 19070 6351
>>> SPECjbb2015.Lin-X64.exp.02
>>> 23838 22100 20262 5005
>>> SPECjbb2015.Lin-X64.exp.03
>>> 23838 22543 20262 5881
>>> SPECjbb2015.Lin-X64.exp.04
>>> 23838 23170 20262 5938
>>> SPECjbb2015.Lin-X64.exp.05
>>> 23838 22543 20262 5744
>>> SPECjbb2015.Lin-X64.exp.06
>>> 23838 22100 20262 5482
>>> SPECjbb2015.Lin-X64.exp.07
>>> 23838 22543 20262 6213
>>> SPECjbb2015.Lin-X64.exp.08
>>> 23838 22100 21454 5637
>>> SPECjbb2015.Lin-X64.exp.09
>>> 23838 21730 20262 6335
>>> SPECjbb2015.Lin-X64.exp.10
>>> --------------- --------- -------- ------------- --------
>>> 23838.00 22279.40 20262.00 5891.50 average of values
>>>
>>>
>>> MacOSX Runs
>>>
>>> hbIR hbIR
>>> (max attempted) (settled) max-jOPS critical-jOPS run_name
>>> --------------- --------- -------- ------------- --------
>>> 6725 5621 4708 1543
>>> SPECjbb2015.MacOSX.base.01
>>> 5621 4701 4778 1326
>>> SPECjbb2015.MacOSX.base.02
>>> 6725 5621 4708 1475
>>> SPECjbb2015.MacOSX.base.03
>>> 5621 4701 4778 1372
>>> SPECjbb2015.MacOSX.base.04
>>> 5621 4701 4778 1560
>>> SPECjbb2015.MacOSX.base.05
>>> 5621 4701 4778 1471
>>> SPECjbb2015.MacOSX.base.06
>>> 5621 4701 4778 1430
>>> SPECjbb2015.MacOSX.base.07
>>> 5621 4701 4778 1560
>>> SPECjbb2015.MacOSX.base.08
>>> 5621 4701 4778 1581
>>> SPECjbb2015.MacOSX.base.09
>>> 5621 4701 4778 1633
>>> SPECjbb2015.MacOSX.base.10
>>> --------------- --------- -------- ------------- --------
>>> 5841.80 4885.00 4764.00 1495.10 average of values
>>>
>>> hbIR hbIR
>>> (max attempted) (settled) max-jOPS critical-jOPS run_name
>>> --------------- --------- -------- ------------- --------
>>> 5621 4701 4778 1566
>>> SPECjbb2015.MacOSX.exp.01
>>> 5621 4701 4778 1430
>>> SPECjbb2015.MacOSX.exp.02
>>> 5621 4701 4778 1530
>>> SPECjbb2015.MacOSX.exp.03
>>> 5621 4701 4778 1304
>>> SPECjbb2015.MacOSX.exp.04
>>> 5621 4701 4778 1560
>>> SPECjbb2015.MacOSX.exp.05
>>> 5621 4701 4778 1460
>>> SPECjbb2015.MacOSX.exp.06
>>> 5621 4701 4778 1638
>>> SPECjbb2015.MacOSX.exp.07
>>> 5621 4701 4778 1471
>>> SPECjbb2015.MacOSX.exp.08
>>> 5621 4701 4778 1402
>>> SPECjbb2015.MacOSX.exp.09
>>> 5621 4701 4778 1560
>>> SPECjbb2015.MacOSX.exp.10
>>> --------------- --------- -------- ------------- --------
>>> 5621.00 4701.00 4778.00 1492.10 average of values
>>>
>>>
>>> Solaris-X64 Runs
>>>
>>> hbIR hbIR
>>> (max attempted) (settled) max-jOPS critical-jOPS run_name
>>> --------------- --------- -------- ------------- --------
>>> 16584 13957 13267 2332
>>> SPECjbb2015.Sol-X64.base.01
>>> 16584 13837 13267 3123
>>> SPECjbb2015.Sol-X64.base.02
>>> 16584 13837 13267 2853
>>> SPECjbb2015.Sol-X64.base.03
>>> 16584 13837 12438 2667
>>> SPECjbb2015.Sol-X64.base.04
>>> 14743 14210 12532 2920
>>> SPECjbb2015.Sol-X64.base.05
>>> 16584 13837 12438 3534
>>> SPECjbb2015.Sol-X64.base.06
>>> 13837 13497 12453 2226
>>> SPECjbb2015.Sol-X64.base.07
>>> 16584 13837 12438 2265
>>> SPECjbb2015.Sol-X64.base.08
>>> 16584 13837 13267 2853
>>> SPECjbb2015.Sol-X64.base.09
>>> 16584 13837 12438 3146
>>> SPECjbb2015.Sol-X64.base.10
>>> --------------- --------- -------- ------------- --------
>>> 16125.20 13852.30 12780.50 2791.90 average of values
>>>
>>> hbIR hbIR
>>> (max attempted) (settled) max-jOPS critical-jOPS run_name
>>> --------------- --------- -------- ------------- --------
>>> 16584 13837 12438 2073
>>> SPECjbb2015.Sol-X64.exp.01
>>> 16584 14353 13267 2667
>>> SPECjbb2015.Sol-X64.exp.02
>>> 16584 13837 12438 2349
>>> SPECjbb2015.Sol-X64.exp.03
>>> 16584 13837 12438 2494
>>> SPECjbb2015.Sol-X64.exp.04
>>> 13981 13832 12583 3241
>>> SPECjbb2015.Sol-X64.exp.05
>>> 13837 13575 12453 2621
>>> SPECjbb2015.Sol-X64.exp.06
>>> 13981 13832 12583 2768
>>> SPECjbb2015.Sol-X64.exp.07
>>> 16584 13837 12438 3000
>>> SPECjbb2015.Sol-X64.exp.08
>>> 16584 13837 12438 2952
>>> SPECjbb2015.Sol-X64.exp.09
>>> 16584 13837 12438 2494
>>> SPECjbb2015.Sol-X64.exp.10
>>> --------------- --------- -------- ------------- --------
>>> 15788.70 13861.40 12551.40 2665.90 average of values
>>>
>>>
>>> On 3/24/19 9:57 AM, Daniel D. Daugherty wrote:
>>>> Greetings,
>>>>
>>>> Welcome to the OpenJDK review thread for my port of Carsten's work on:
>>>>
>>>> JDK-8153224 Monitor deflation prolong safepoints
>>>> https://bugs.openjdk.java.net/browse/JDK-8153224
>>>>
>>>> Here's a link to the OpenJDK wiki that describes my port:
>>>>
>>>> https://wiki.openjdk.java.net/display/HotSpot/Async+Monitor+Deflation
>>>>
>>>> Here's the webrev URL:
>>>>
>>>> http://cr.openjdk.java.net/~dcubed/8153224-webrev/3-for-jdk13/
>>>>
>>>> Here's a link to Carsten's original webrev:
>>>>
>>>> http://cr.openjdk.java.net/~cvarming/monitor_deflate_conc/0/
>>>>
>>>> Earlier versions of this patch have been through several rounds of
>>>> preliminary review. Many thanks to Carsten, Coleen, Robbin, and
>>>> Roman for their preliminary code review comments. A very special
>>>> thanks to Robbin and Roman for building and testing the patch in
>>>> their own environments (including specJBB2015).
>>>>
>>>> This version of the patch has been thru Mach5 tier[1-8] testing on
>>>> Oracle's usual set of platforms. Earlier versions have been run
>>>> through my stress kit on my Linux-X64 and Solaris-X64 servers
>>>> (product, fastdebug, slowdebug).Earlier versions have run Kitchensink
>>>> for 12 hours on MacOSX, Linux-X64 and Solaris-X64 (product, fastdebug
>>>> and slowdebug). Earlier versions have run my monitor inflation stress
>>>> tests for 12 hours on MacOSX, Linux-X64 and Solaris-X64 (product,
>>>> fastdebug and slowdebug).
>>>>
>>>> All of the testing done on earlier versions will be redone on the
>>>> latest version of the patch.
>>>>
>>>> Thanks, in advance, for any questions, comments or suggestions.
>>>>
>>>> Dan
>>>>
>>>> P.S.
>>>> One subtest in gc/g1/humongousObjects/TestHumongousClassLoader.java
>>>> is currently failing in -Xcomp mode on Win* only. I've been trying
>>>> to characterize/analyze this failure for more than a week now. At
>>>> this point I'm convinced that Async Monitor Deflation is aggravating
>>>> an existing bug. However, I plan to have a better handle on that
>>>> failure before these bits are pushed to the jdk/jdk repo.
>>>>
>>>
>>>
>>
More information about the hotspot-runtime-dev
mailing list