Merge
authorerikj
Thu, 24 Nov 2016 16:07:53 +0100
changeset 42601 d26570dc8a09
parent 42599 313ee598a1a3 (diff)
parent 42600 d97d0621bf54 (current diff)
child 42602 94a366e4c2cb
child 42603 936e82a912c0
Merge
hotspot/make/BuildHotspot.gmk
--- a/hotspot/src/share/vm/gc/g1/g1SATBCardTableModRefBS.cpp	Thu Nov 24 15:27:53 2016 +0100
+++ b/hotspot/src/share/vm/gc/g1/g1SATBCardTableModRefBS.cpp	Thu Nov 24 16:07:53 2016 +0100
@@ -178,44 +178,37 @@
 }
 
 void
-G1SATBCardTableLoggingModRefBS::invalidate(MemRegion mr, bool whole_heap) {
+G1SATBCardTableLoggingModRefBS::invalidate(MemRegion mr) {
   volatile jbyte* byte = byte_for(mr.start());
   jbyte* last_byte = byte_for(mr.last());
   Thread* thr = Thread::current();
-  if (whole_heap) {
-    while (byte <= last_byte) {
-      *byte = dirty_card;
-      byte++;
-    }
-  } else {
     // skip all consecutive young cards
-    for (; byte <= last_byte && *byte == g1_young_gen; byte++);
+  for (; byte <= last_byte && *byte == g1_young_gen; byte++);
 
-    if (byte <= last_byte) {
-      OrderAccess::storeload();
-      // Enqueue if necessary.
-      if (thr->is_Java_thread()) {
-        JavaThread* jt = (JavaThread*)thr;
-        for (; byte <= last_byte; byte++) {
-          if (*byte == g1_young_gen) {
-            continue;
-          }
-          if (*byte != dirty_card) {
-            *byte = dirty_card;
-            jt->dirty_card_queue().enqueue(byte);
-          }
+  if (byte <= last_byte) {
+    OrderAccess::storeload();
+    // Enqueue if necessary.
+    if (thr->is_Java_thread()) {
+      JavaThread* jt = (JavaThread*)thr;
+      for (; byte <= last_byte; byte++) {
+        if (*byte == g1_young_gen) {
+          continue;
         }
-      } else {
-        MutexLockerEx x(Shared_DirtyCardQ_lock,
-                        Mutex::_no_safepoint_check_flag);
-        for (; byte <= last_byte; byte++) {
-          if (*byte == g1_young_gen) {
-            continue;
-          }
-          if (*byte != dirty_card) {
-            *byte = dirty_card;
-            _dcqs.shared_dirty_card_queue()->enqueue(byte);
-          }
+        if (*byte != dirty_card) {
+          *byte = dirty_card;
+          jt->dirty_card_queue().enqueue(byte);
+        }
+      }
+    } else {
+      MutexLockerEx x(Shared_DirtyCardQ_lock,
+                      Mutex::_no_safepoint_check_flag);
+      for (; byte <= last_byte; byte++) {
+        if (*byte == g1_young_gen) {
+          continue;
+        }
+        if (*byte != dirty_card) {
+          *byte = dirty_card;
+          _dcqs.shared_dirty_card_queue()->enqueue(byte);
         }
       }
     }
--- a/hotspot/src/share/vm/gc/g1/g1SATBCardTableModRefBS.hpp	Thu Nov 24 15:27:53 2016 +0100
+++ b/hotspot/src/share/vm/gc/g1/g1SATBCardTableModRefBS.hpp	Thu Nov 24 16:07:53 2016 +0100
@@ -152,7 +152,7 @@
 
   // NB: if you do a whole-heap invalidation, the "usual invariant" defined
   // above no longer applies.
-  void invalidate(MemRegion mr, bool whole_heap = false);
+  void invalidate(MemRegion mr);
 
   void write_region_work(MemRegion mr)    { invalidate(mr); }
   void write_ref_array_work(MemRegion mr) { invalidate(mr); }
--- a/hotspot/src/share/vm/gc/shared/cardTableModRefBS.cpp	Thu Nov 24 15:27:53 2016 +0100
+++ b/hotspot/src/share/vm/gc/shared/cardTableModRefBS.cpp	Thu Nov 24 16:07:53 2016 +0100
@@ -380,7 +380,7 @@
   }
 }
 
-void CardTableModRefBS::invalidate(MemRegion mr, bool whole_heap) {
+void CardTableModRefBS::invalidate(MemRegion mr) {
   assert((HeapWord*)align_size_down((uintptr_t)mr.start(), HeapWordSize) == mr.start(), "Unaligned start");
   assert((HeapWord*)align_size_up  ((uintptr_t)mr.end(),   HeapWordSize) == mr.end(),   "Unaligned end"  );
   for (int i = 0; i < _cur_covered_regions; i++) {
--- a/hotspot/src/share/vm/gc/shared/cardTableModRefBS.hpp	Thu Nov 24 15:27:53 2016 +0100
+++ b/hotspot/src/share/vm/gc/shared/cardTableModRefBS.hpp	Thu Nov 24 16:07:53 2016 +0100
@@ -260,7 +260,7 @@
   }
 
   // ModRefBS functions.
-  virtual void invalidate(MemRegion mr, bool whole_heap = false);
+  virtual void invalidate(MemRegion mr);
   void clear(MemRegion mr);
   void dirty(MemRegion mr);
 
--- a/hotspot/src/share/vm/gc/shared/cardTableRS.hpp	Thu Nov 24 15:27:53 2016 +0100
+++ b/hotspot/src/share/vm/gc/shared/cardTableRS.hpp	Thu Nov 24 16:07:53 2016 +0100
@@ -159,8 +159,8 @@
   void clear(MemRegion mr) { _ct_bs->clear(mr); }
   void clear_into_younger(Generation* old_gen);
 
-  void invalidate(MemRegion mr, bool whole_heap = false) {
-    _ct_bs->invalidate(mr, whole_heap);
+  void invalidate(MemRegion mr) {
+    _ct_bs->invalidate(mr);
   }
   void invalidate_or_clear(Generation* old_gen);
 
--- a/hotspot/src/share/vm/gc/shared/modRefBarrierSet.hpp	Thu Nov 24 15:27:53 2016 +0100
+++ b/hotspot/src/share/vm/gc/shared/modRefBarrierSet.hpp	Thu Nov 24 16:07:53 2016 +0100
@@ -86,10 +86,8 @@
     assert(false, "can't call");
   }
 
-  // Causes all refs in "mr" to be assumed to be modified.  If "whole_heap"
-  // is true, the caller asserts that the entire heap is being invalidated,
-  // which may admit an optimized implementation for some barriers.
-  virtual void invalidate(MemRegion mr, bool whole_heap = false) = 0;
+  // Causes all refs in "mr" to be assumed to be modified.
+  virtual void invalidate(MemRegion mr) = 0;
 
   // The caller guarantees that "mr" contains no references.  (Perhaps it's
   // objects have been moved elsewhere.)
--- a/hotspot/test/TEST.groups	Thu Nov 24 15:27:53 2016 +0100
+++ b/hotspot/test/TEST.groups	Thu Nov 24 16:07:53 2016 +0100
@@ -52,19 +52,19 @@
 
 hotspot_all = \
   /
-  
+
 hotspot_compiler = \
   compiler
-  
+
 hotspot_gc = \
   gc
 
 hotspot_runtime = \
   runtime
-  
+
 hotspot_serviceability = \
   serviceability
-  
+
 hotspot_misc = \
   / \
  -:hotspot_compiler \
@@ -330,6 +330,13 @@
 hotspot_fast_compiler_closed = \
   sanity/ExecuteInternalVMTests.java
 
+hotspot_not_fast_compiler = \
+  :hotspot_compiler \
+  -:hotspot_fast_compiler_1 \
+  -:hotspot_fast_compiler_2 \
+  -:hotspot_fast_compiler_3 \
+  -:hotspot_fast_compiler_closed
+
 hotspot_fast_gc_1 = \
   gc/g1/
 
@@ -414,7 +421,7 @@
   :hotspot_fast_gc_gcold \
   :hotspot_fast_runtime \
   :hotspot_fast_serviceability
-  
+
 hotspot_runtime_tier2 = \
   runtime/ \
   serviceability/ \
@@ -423,11 +430,11 @@
  -:hotspot_fast_runtime \
  -:hotspot_fast_serviceability \
  -:hotspot_runtime_tier2_platform_agnostic
- 
+
 hotspot_runtime_tier2_platform_agnostic = \
   runtime/SelectionResolution \
  -:hotspot_fast_runtime
- 
+
 hotspot_runtime_tier3 = \
   runtime/ \
   serviceability/ \
@@ -440,7 +447,7 @@
   runtime/MinimalVM \
   runtime/ErrorHandling \
   runtime/logging
-  
+
 #All tests that depends on nashorn extension.
 #
 needs_nashorn = \