16 Commits

Author SHA1 Message Date
Thomas Schatzl
ab5637182c 7163191: G1: introduce a "heap spanning table" abstraction
Add G1BiasedArray<T> that is an array where each element represents a fixed-sized subdivision of the heap. Use this abstraction to refactor the HeapRegionSeq class.

Reviewed-by: brutisso
2013-09-25 13:25:24 +02:00
Bengt Rutisson
a8ad116e49 8013872: G1: HeapRegionSeq::shrink_by() has invalid assert
Refactored shrink_by() to only use region counts and not byte sizes

Reviewed-by: johnc, tschatzl
2013-05-06 21:30:34 +02:00
Zhengyu Gu
a39b17624a 6995781: Native Memory Tracking (Phase 1)
7151532: DCmd for hotspot native memory tracking

Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd

Reviewed-by: acorn, coleenp, fparain
2012-06-28 17:03:16 -04:00
Antonios Printezis
01ea4199c7 7157073: G1: type change size_t -> uint for region counts / indexes
Change the type of fields / variables / etc. that represent region counts and indeces from size_t to uint.

Reviewed-by: iveresov, brutisso, jmasa, jwilhelm
2012-04-18 07:21:15 -04:00
Antonios Printezis
95832db2e5 7059019: G1: add G1 support to the SA
Extend the SA to recognize the G1CollectedHeap and implement any code that's needed by our serviceability tools (jmap, jinfo, jstack, etc.) that depend on the SA.

Reviewed-by: never, poonam, johnc
2011-09-20 09:59:59 -04:00
Antonios Printezis
9332c44d84 7045330: G1: Simplify/fix the HeapRegionSeq class
7042285: G1: native memory leak during humongous object allocation
6804436: G1: heap region indices should be size_t

A series of fixes and improvements to the HeapRegionSeq class: a) replace the _regions growable array with a standard C array, b) avoid de-allocating / re-allocating HeapRegion instances when the heap shrinks / grows (fix for 7042285), c) introduce fast method to map address to HeapRegion via a "biased" array pointer, d) embed the _hrs object in G1CollectedHeap, instead of pointing to it via an indirection, e) assume that all the regions added to the HeapRegionSeq instance are contiguous, f) replace int's with size_t's for indexes (and expand that to HeapRegion as part of 6804436), g) remove unnecessary / unused methods, h) rename a couple of fields (_alloc_search_start and _seq_bottom), i) fix iterate_from() not to always start from index 0 irrespective of the region passed to it, j) add a verification method to check the HeapRegionSeq assumptions, k) always call the wrappers for _hrs.iterate(), _hrs_length(), and _hrs.at() from G1CollectedHeap, not those methods directly, and l) unify the code that expands the sequence (by either re-using or creating a new HeapRegion) and make it robust wrt to a HeapRegion allocation failing.

Reviewed-by: stefank, johnc, brutisso
2011-06-10 13:16:40 -04:00
Antonios Printezis
3ff554aec1 7014923: G1: code cleanup
Some G1 code cleanup.

Reviewed-by: johnc, jcoomes, jwilhelm
2011-03-04 17:13:19 -05:00
Antonios Printezis
8bce4a6620 6977804: G1: remove the zero-filling thread
This changeset removes the zero-filling thread from G1 and collapses the two free region lists we had before (the "free" and "unclean" lists) into one. The new free list uses the new heap region sets / lists abstractions that we'll ultimately use it to keep track of all regions in the heap. A heap region set was also introduced for the humongous regions. Finally, this change increases the concurrency between the thread that completes freeing regions (after a cleanup pause) and the rest of the system (before we'd have to wait for said thread to complete before allocating a new region). The changest also includes a lot of refactoring and code simplification.

Reviewed-by: jcoomes, johnc
2011-01-19 19:30:42 -05:00
Antonios Printezis
05b7df20dd 7011379: G1: overly long concurrent marking cycles
This changeset introduces filtering of SATB buffers at the point when they are about to be enqueued. If this filtering clears enough entries on each buffer, the buffer can then be re-used and not enqueued. This cuts down the number of SATB buffers that need to be processed by the concurrent marking threads.

Reviewed-by: johnc, ysr
2011-01-19 09:35:17 -05:00
Stefan Karlsson
8006fe8f75 6989984: Use standard include model for Hospot
Replaced MakeDeps and the includeDB files with more standardized solutions.

Reviewed-by: coleenp, kvn, kamg
2010-11-23 13:22:55 -08:00
Erik Trimble
ba7c173659 6941466: Oracle rebranding changes for Hotspot repositories
Change all the Sun copyrights to Oracle copyright

Reviewed-by: ohair
2010-05-27 19:08:38 -07:00
Xiomara Jayasena
a63ef10004 6862919: Update copyright year
Update copyright for files that have been modified in 2009, up to 07/09

Reviewed-by: tbell, ohair
2009-07-28 12:12:40 -07:00
Andrey Petrusenko
cf2ae8d98d 6543938: G1: remove the concept of popularity
Reviewed-by: iveresov, tonyp
2009-03-25 13:10:54 -07:00
Xiomara Jayasena
99f0eac1a2 6785258: Update copyright year
Update copyright for files that have been modified starting July 2008 to Dec 2008

Reviewed-by: katleman, ohair, tbell
2008-12-15 16:55:11 -08:00
Igor Veresov
bc9f364917 6758633: G1: SEGV with GCOld on Linux
Avoid growth of a GrowableArray backend of HeapRegionSeq.

Reviewed-by: tonyp, jcoomes
2008-10-13 21:41:42 -07:00
Y. Srinivas Ramakrishna
18f3386a98 6711316: Open source the Garbage-First garbage collector
First mercurial integration of the code for the Garbage-First garbage collector.

Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
2008-06-05 15:57:56 -07:00