diff src/share/vm/memory/genCollectedHeap.hpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents d166675568f6
children 52b4284cb496
line wrap: on
line diff
--- a/src/share/vm/memory/genCollectedHeap.hpp	Tue Apr 01 14:09:03 2014 +0200
+++ b/src/share/vm/memory/genCollectedHeap.hpp	Tue Apr 01 13:57:07 2014 +0200
@@ -166,6 +166,14 @@
   HeapWord** top_addr() const;
   HeapWord** end_addr() const;
 
+  // Return an estimate of the maximum allocation that could be performed
+  // without triggering any collection activity.  In a generational
+  // collector, for example, this is probably the largest allocation that
+  // could be supported in the youngest generation.  It is "unsafe" because
+  // no locks are taken; the result should be treated as an approximation,
+  // not a guarantee.
+  size_t unsafe_max_alloc();
+
   // Does this heap support heap inspection? (+PrintClassHistogram)
   virtual bool supports_heap_inspection() const { return true; }
 
@@ -248,7 +256,6 @@
   // Section on TLAB's.
   virtual bool supports_tlab_allocation() const;
   virtual size_t tlab_capacity(Thread* thr) const;
-  virtual size_t tlab_used(Thread* thr) const;
   virtual size_t unsafe_max_tlab_alloc(Thread* thr) const;
   virtual HeapWord* allocate_new_tlab(size_t size);
 
@@ -316,7 +323,7 @@
   }
 
   // Update the gc statistics for each generation.
-  // "level" is the level of the latest collection.
+  // "level" is the level of the lastest collection
   void update_gc_stats(int current_level, bool full) {
     for (int i = 0; i < _n_gens; i++) {
       _gens[i]->update_gc_stats(current_level, full);
@@ -412,15 +419,18 @@
                                 // The remaining arguments are in an order
                                 // consistent with SharedHeap::process_strong_roots:
                                 bool activate_scope,
+                                bool is_scavenging,
                                 SharedHeap::ScanningOption so,
                                 OopsInGenClosure* not_older_gens,
+                                bool do_code_roots,
                                 OopsInGenClosure* older_gens,
                                 KlassClosure* klass_closure);
 
-  // Apply "root_closure" to all the weak roots of the system.
-  // These include JNI weak roots, string table,
-  // and referents of reachable weak refs.
-  void gen_process_weak_roots(OopClosure* root_closure);
+  // Apply "blk" to all the weak roots of the system.  These include
+  // JNI weak roots, the code cache, system dictionary, symbol table,
+  // string table, and referents of reachable weak refs.
+  void gen_process_weak_roots(OopClosure* root_closure,
+                              CodeBlobClosure* code_roots);
 
   // Set the saved marks of generations, if that makes sense.
   // In particular, if any generation might iterate over the oops