48 Commits

Author SHA1 Message Date
Stefan Karlsson
0fcf645cff 8178489: Make align functions more type safe and consistent
Reviewed-by: mgerdin, rehn
2017-04-12 17:53:18 +02:00
Thomas Schatzl
c0fff2604d 8183002: Remove unused concurrent parameter in HeapRegionManager::par_iterate
Reviewed-by: ehelin, sjohanss
2017-06-28 12:11:48 +02:00
Coleen Phillimore
6659245612 8174749: Use hash table/oops for MemberName table
Add a Java type called ResolvedMethodName which is immutable and can be stored in a hashtable, that is weakly collected by gc

Reviewed-by: sspitsyn, stefank, jrose
2017-05-27 09:21:01 -04:00
Alexander Harlap
4dc55a6593 8065402: G1 does not expand marking stack when mark stack overflow happens during concurrent marking
Simplified decision mechanism for marking stack expansion

Reviewed-by: kbarrett, tschatzl
2017-05-09 13:50:06 -04:00
Alexander Harlap
cf7c7fedcd 8178542: G1: VM hangs during shutdown due to mark stack overflow
Removed not needed call to clear_has_overflown() to avoid inconsistent state

Reviewed-by: kbarrett, sangheki
2017-05-01 10:50:38 -04:00
Stefan Johansson
d11fb72564 8171238: Unify cleanup code used in G1 Remark and Full GC marking
Reviewed-by: tschatzl, pliden
2017-03-24 10:27:04 +01:00
Thomas Schatzl
7bca463789 8168467: Use TaskEntry as task mark queue elements
Change the mark stack to use TaskEntry queue elements to improve type safety instead of casting around raw pointers.

Reviewed-by: kbarrett, sangheki
2017-03-15 11:44:46 +01:00
Alexander Harlap
6fdf396624 8165674: G1CMMarkStack::out_of_memory possibly redundant
Remove the redundant G1CMMarkStack::_out_of_memory member.

Reviewed-by: kbarrett, tschatzl
2017-03-09 10:48:44 +01:00
Thomas Schatzl
3b93aefe93 8162104: Use in_cset() instead of obj_in_cs()
Reviewed-by: ehelin, sjohanss
2017-02-23 10:19:05 +01:00
Thomas Schatzl
06bd79afed 8057003: Large reference arrays cause extremely long synchronization times
Slice large object arrays into parts so that the synchronization of marking threads with an STW pause request does not take long.

Reviewed-by: ehelin, pliden
2016-11-24 11:27:57 +01:00
Thomas Schatzl
c354a62301 8166207: Use of Copy::conjoint_oops_atomic in global mark stack causes crashes on arm64
Use Copy::conjoint_memory_atomic() instead.

Reviewed-by: kbarrett
2016-09-19 22:55:26 +02:00
Thomas Schatzl
94bbcbd378 8159422: Very high Concurrent Mark mark stack contention
Decrease contention on mark stack by splitting locks, and minimizing the amount of time these locks are held. Improve mark stack management.

Reviewed-by: kbarrett, mgerdin, eosterlund
2016-09-15 16:44:19 +02:00
Thomas Schatzl
c719b0171c 8164948: Initializing stores of HeapRegions are not ordered with regards to their use in G1ConcurrentMark
Add a storestore barrier before publishing newly initialized HeapRegion instances, and place a loadload barrier before use of members.

Reviewed-by: sjohanss, sangheki
2016-09-13 11:32:45 +02:00
Thomas Schatzl
c271d83599 8165292: The gc+task logging is repeated a lot, decreasing the usefulness of -Xlog:gc*=info
Separate number of workers used debugging information from adaptive worker sizing log messages.

Reviewed-by: ehelin, sjohanss, jmasa
2016-09-07 09:20:10 +02:00
David Holmes
5f1f4489ac 8157907: Incorrect inclusion of atomic.hpp instead of atomic.inline.hpp
Remove atomic.inline.hpp and move the contents back into atomic.hpp

Reviewed-by: stefank, pliden, simonis
2016-08-21 20:56:37 -04:00
Jon Masamitsu
d618ceab2e 8159073: : Error handling incomplete when creating GC threads lazily
Reviewed-by: drwhite, tschatzl, sangheki
2016-06-08 14:11:51 -07:00
Thomas Schatzl
2313844e20 8161993: G1 crashes if active_processor_count changes during startup
Use the initial active processor count for memory initialization instead of the current active one.

Reviewed-by: dholmes, mgerdin
2016-07-26 11:04:20 +02:00
Thomas Schatzl
ada5ab192f 8034842: Parallelize the Free CSet phase in G1
Reviewed-by: jmasa, ehelin
2016-07-19 10:31:41 +02:00
Thomas Schatzl
1244572841 8160897: Concurrent mark mark stack memory allocation leaks memory
Fix and clean up concurrent mark mark stack memory allocation.

Reviewed-by: jmasa, sangheki
2016-07-15 13:33:44 +02:00
Joseph Provino
5648deddee 8153582: Logging of ConcGCThreads is done too early
ConcGCThreads is logged as 0 because it hasn't been initialized yet.

Reviewed-by: tschatzl, dfazunen
2016-05-19 10:48:28 -04:00
Thomas Schatzl
99c9a7f6f6 8155810: Bound the number of root region scan threads to the number of survivor regions
Reviewed-by: jmasa, sjohanss
2016-05-10 16:40:15 +02:00
Thomas Schatzl
029fbccccb 8156660: JDK-8150393 does not set _scan_in_progress properly
Reviewed-by: ehelin, mgerdin
2016-05-10 16:40:04 +02:00
Mikael Gerdin
512ffd9ded Merge 2016-05-04 10:06:00 +02:00
Stefan Karlsson
f8be292b88 8141501: Problems with BitMap buffer management
Reviewed-by: pliden, kbarrett
2016-05-03 22:45:27 +02:00
Mikael Gerdin
462ad706f1 8150721: Don't explicitly manage G1 young regions in YoungList
Reviewed-by: ehelin, sjohanss, tschatzl
2016-05-03 12:33:10 +02:00
Mikael Gerdin
8f81f1a52b 8150393: Maintain the set of survivor regions in an array between GCs
Reviewed-by: tschatzl, sjohanss
2016-04-27 16:11:45 +02:00
Thomas Schatzl
72977f4009 8155230: Tune thread usage for mark bitmap clear
Reviewed-by: jmasa, mgerdin
2016-05-02 10:24:41 +02:00
Thomas Schatzl
4c2f0704f3 8153170: Card Live Data does not correctly handle eager reclaim
The card live data of regions eagerly reclaimed during remark and cleanup pause could be wrong, not considering that these regions were eagerly reclaimed and empty.

Reviewed-by: drwhite, kbarrett
2016-04-18 16:54:04 +02:00
Mikael Gerdin
43c73dc321 8154154: Separate G1 specific policy code from the CollectorPolicy class hierarchy
Move G1 runtime policy code to new class G1Policy which is unrelated to CollectorPolicy

Reviewed-by: kbarrett, ehelin
2016-03-18 15:20:43 +01:00
Derek White
1326ae31c8 8152905: hs_err file is missing gc threads
List the GC threads in the hs_err file in the "Other Threads" section

Reviewed-by: dcubed, coleenp
2016-04-13 17:00:54 -04:00
Thomas Schatzl
a009aa9ca7 8151386: Extract card live data out of G1ConcurrentMark
Move card live data management out of G1ConcurrentMark into extra class G1CardLiveData managed by G1RemSet

Reviewed-by: mgerdin, kbarrett
2016-04-06 13:41:59 +02:00
Thomas Schatzl
0c06163b35 8077144: Concurrent mark initialization takes too long
Remove per-marking thread liveness bitmaps and recreate liveness bitmap concurrently after the cleanup pause.

Reviewed-by: mgerdin, ehelin, kbarrett
2016-04-06 13:32:48 +02:00
Stefan Karlsson
15c4140ae5 8152632: Rename LogHandle(...) to Log(...)
Reviewed-by: brutisso, mlarsson, rprotacio
2016-04-04 09:15:15 +02:00
Daniel D. Daugherty
8076bee28c 8153302: [BACKOUT] STW phases at Concurrent GC should count in PerfCounter
Reviewed-by: jmasa, jwilhelm
2016-04-01 14:30:10 -07:00
Yasumasa Suenaga
7e964d8697 8151674: STW phases at Concurrent GC should count in PerfCounter
Reviewed-by: jmasa, sla, tschatzl
2016-03-30 21:05:13 +09:00
Stefan Karlsson
a15383123d 8152100: Rework and unify the GC phase logging
Reviewed-by: sjohanss, jwilhelm
2016-03-18 08:59:07 +01:00
Sangheon Kim
9f63ca85a7 8151085: Change G1 concurrent timer and tracer measuring time
Change measuring time for G1 concurrent phases and reporting heap summary

Reviewed-by: brutisso, sjohanss
2016-03-17 11:18:52 -07:00
Thomas Schatzl
0588ecf584 8151920: Region liveness printing is broken
Remove obsolete code that causes an assert.

Reviewed-by: drwhite, brutisso
2016-03-17 09:36:04 +01:00
Thomas Schatzl
ec207fe815 8151614: Improve logging in concurrent mark code
Move detailed concurrent mark phase logging to "gc, marking" tags and add a summary "Concurrent Cycle" log message when only using "gc" logging.

Reviewed-by: sangheki, brutisso
2016-03-16 12:23:13 +01:00
Thomas Schatzl
a3b16ac9eb 8151126: Clean up duplicate code for clearing the mark bitmaps
Merge the code to clear the mark bitmap concurrently and in the STW pause.

Reviewed-by: jmasa, tbenson
2016-03-16 12:21:18 +01:00
Bengt Rutisson
c4916d0f05 8151605: Change warning() to log_warning(gc) in the GC code
Reviewed-by: jwilhelm, jmasa
2016-03-11 11:34:22 +01:00
Sangheon Kim
5e641bdf7a 8149834: gc/shared/gcTimer.cpp:88 assert(_is_concurrent_phase_active) failed: A concurrent phase is not active
Compare-and-exchange for concurrent gc timer related flag at G1CollectedHeap

Reviewed-by: jmasa, drwhite
2016-03-07 02:11:47 -08:00
Bengt Rutisson
75b02a64c6 8058944: Unify the reporting strings for the GC debug level logging in G1
Reviewed-by: sjohanss, tschatzl
2016-03-02 08:41:02 +01:00
Kim Barrett
234373ff31 8150421: Delete experimental G1UseConcMarkReferenceProcessing
Removed the option and supporting code.

Reviewed-by: jmasa, tamao
2016-02-28 12:22:05 -05:00
Joseph Provino
41c0116f6e 8139651: ConcurrentG1Refine uses ints for many of its members that should be unsigned types
Ints need to be changed to size_t

Reviewed-by: kbarrett, tbenson
2016-02-26 14:02:39 -05:00
Mikael Gerdin
8f88752757 8149013: Remove unused and dead code from G1CollectorPolicy
Reviewed-by: ehelin, jwilhelm
2016-02-04 08:22:26 +01:00
Bengt Rutisson
ad3fb1dbbd 8148992: VM can hang on exit if root region scanning is initiated but not executed
Reviewed-by: tschatzl, pliden, jwilhelm
2016-02-10 12:56:55 +01:00
Erik Helin
92143e58fa 8148973: Rename g1/concurrentMark.{hpp,cpp,inline.hpp} to g1/g1ConcurrentMark.{hpp,cpp,inline.hpp}
Reviewed-by: tschatzl, mgerdin
2016-02-05 16:03:56 +01:00