Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
Automatic merge of jdk:master into master
  • Loading branch information
duke committed Nov 28, 2020
2 parents 77dca42 + 65137ff commit ec6c1f462155f5110678dc50b1b06d7be1b909a5
Showing with 1,440 additions and 1,172 deletions.
  1. +3 −3 doc/building.html
  2. +3 −3 doc/building.md
  3. +0 −5 make/CompileJavaModules.gmk
  4. +1 −1 make/autoconf/flags-ldflags.m4
  5. +10 −3 src/hotspot/cpu/ppc/ppc.ad
  6. +1 −1 src/hotspot/cpu/x86/x86_32.ad
  7. +52 −30 src/hotspot/share/gc/g1/g1RemSet.cpp
  8. +5 −2 src/hotspot/share/gc/g1/g1RemSet.hpp
  9. +6 −7 src/hotspot/share/gc/g1/g1RemSetSummary.cpp
  10. +5 −5 src/hotspot/share/gc/g1/g1RemSetSummary.hpp
  11. +6 −13 src/hotspot/share/gc/g1/g1ServiceThread.cpp
  12. +7 −9 src/hotspot/share/gc/g1/g1ServiceThread.hpp
  13. +1 −0 src/hotspot/share/opto/callnode.hpp
  14. +1 −0 src/hotspot/share/opto/machnode.hpp
  15. +3 −1 src/hotspot/share/opto/matcher.cpp
  16. +3 −0 src/hotspot/share/opto/node.hpp
  17. +4 −0 src/java.base/share/classes/java/util/UUID.java
  18. +11 −12 ...vadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractExecutableMemberWriter.java
  19. +0 −231 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java
  20. +3 −2 ...are/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java
  21. +4 −102 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java
  22. +4 −3 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriterImpl.java
  23. +3 −2 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/EnumConstantWriterImpl.java
  24. +3 −2 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java
  25. +13 −59 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java
  26. +5 −13 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/LinkFactoryImpl.java
  27. +6 −5 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java
  28. +6 −3 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java
  29. +2 −2 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Navigation.java
  30. +6 −3 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java
  31. +3 −2 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java
  32. +441 −0 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Signatures.java
  33. +2 −0 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Head.java
  34. +38 −12 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java
  35. +81 −105 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/search.js
  36. +8 −0 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ModuleSummaryWriter.java
  37. +8 −0 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/PackageSummaryWriter.java
  38. +1 −0 ...jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ModuleSummaryBuilder.java
  39. +1 −0 ...dk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PackageSummaryBuilder.java
  40. +80 −16 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css
  41. +27 −1 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/IndexBuilder.java
  42. +4 −0 test/langtools/TEST.ROOT
  43. +4 −5 test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java
  44. +3 −3 test/langtools/jdk/javadoc/doclet/testCopyFiles/TestCopyFiles.java
  45. +30 −28 test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java
  46. +3 −2 test/langtools/jdk/javadoc/doclet/testHiddenTag/TestHiddenTag.java
  47. +2 −1 test/langtools/jdk/javadoc/doclet/testHref/TestHref.java
  48. +7 −8 test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java
  49. +8 −6 test/langtools/jdk/javadoc/doclet/testHtmlTag/TestHtmlTag.java
  50. +1 −2 test/langtools/jdk/javadoc/doclet/testIndentation/TestIndentation.java
  51. +8 −9 test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java
  52. +20 −22 test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java
  53. +2 −2 test/langtools/jdk/javadoc/doclet/testLambdaFeature/TestLambdaFeature.java
  54. +11 −7 test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java
  55. +2 −2 test/langtools/jdk/javadoc/doclet/testLiteralCodeInPre/TestLiteralCodeInPre.java
  56. +11 −10 test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java
  57. +1 −1 test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java
  58. +10 −10 test/langtools/jdk/javadoc/doclet/testMethodSignature/TestMethodSignature.java
  59. +10 −5 test/langtools/jdk/javadoc/doclet/testModifierEx/TestModifierEx.java
  60. +30 −37 test/langtools/jdk/javadoc/doclet/testModules/TestModules.java
  61. +38 −33 test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java
  62. +27 −22 test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java
  63. +4 −8 test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java
  64. +1 −2 test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestBadOverride.java
  65. +2 −2 test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenDeprecatedMethods.java
  66. +7 −5 test/langtools/jdk/javadoc/doclet/testPackageAnnotation/TestPackageAnnotation.java
  67. +8 −5 test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java
  68. +4 −4 test/langtools/jdk/javadoc/doclet/testProperty/TestProperty.java
  69. +19 −18 test/langtools/jdk/javadoc/doclet/testRecordTypes/TestRecordTypes.java
  70. +77 −42 test/langtools/jdk/javadoc/doclet/testSealedTypes/TestSealedTypes.java
  71. +3 −4 test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java
  72. +35 −38 test/langtools/jdk/javadoc/doclet/testSearchScript/TestSearchScript.java
  73. +10 −0 test/langtools/jdk/javadoc/doclet/testSearchScript/javadoc-search.js
  74. +1 −1 ...langtools/jdk/javadoc/doclet/testSerializedFormWithClassFile/TestSerializedFormWithClassFile.java
  75. +1 −1 test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java
  76. +1 −1 test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java
  77. +1 −1 test/langtools/jdk/javadoc/doclet/testThrows/TestThrows.java
  78. +162 −162 test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java
  79. +5 −5 test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java
@@ -400,7 +400,7 @@ <h4 id="configure-arguments-for-tailoring-the-build">Configure Arguments for Tai
<li><code>--enable-jvm-feature-&lt;feature&gt;</code> or <code>--disable-jvm-feature-&lt;feature&gt;</code> - Include (or exclude) <code>&lt;feature&gt;</code> as a JVM feature in Hotspot. You can also specify a list of features to be enabled, separated by space or comma, as <code>--with-jvm-features=&lt;feature&gt;[,&lt;feature&gt;...]</code>. If you prefix <code>&lt;feature&gt;</code> with a <code>-</code>, it will be disabled. These options will modify the default list of features for the JVM variant(s) you are building. For the <code>custom</code> JVM variant, the default list is empty. A complete list of valid JVM features can be found using <code>bash configure --help</code>.</li>
<li><code>--with-target-bits=&lt;bits&gt;</code> - Create a target binary suitable for running on a <code>&lt;bits&gt;</code> platform. Use this to create 32-bit output on a 64-bit build platform, instead of doing a full cross-compile. (This is known as a <em>reduced</em> build.)</li>
</ul>
<p>On Linux, BSD and AIX, it is possible to override where Java by default searches for runtime/JNI libraries. This can be useful in situations where there is a special shared directory for system JNI libraries. This setting can in turn be overriden at runtime by setting the <code>java.library.path</code> property.</p>
<p>On Linux, BSD and AIX, it is possible to override where Java by default searches for runtime/JNI libraries. This can be useful in situations where there is a special shared directory for system JNI libraries. This setting can in turn be overridden at runtime by setting the <code>java.library.path</code> property.</p>
<ul>
<li><code>--with-jni-libpath=&lt;path&gt;</code> - Use the specified path as a default when searching for runtime libraries.</li>
</ul>
@@ -439,7 +439,7 @@ <h4 id="configure-arguments-for-external-dependencies">Configure Arguments for E
<h3 id="configure-control-variables">Configure Control Variables</h3>
<p>It is possible to control certain aspects of <code>configure</code> by overriding the value of <code>configure</code> variables, either on the command line or in the environment.</p>
<p>Normally, this is <strong>not recommended</strong>. If used improperly, it can lead to a broken configuration. Unless you're well versed in the build system, this is hard to use properly. Therefore, <code>configure</code> will print a warning if this is detected.</p>
<p>However, there are a few <code>configure</code> variables, known as <em>control variables</em> that are supposed to be overriden on the command line. These are variables that describe the location of tools needed by the build, like <code>MAKE</code> or <code>GREP</code>. If any such variable is specified, <code>configure</code> will use that value instead of trying to autodetect the tool. For instance, <code>bash configure MAKE=/opt/gnumake4.0/bin/make</code>.</p>
<p>However, there are a few <code>configure</code> variables, known as <em>control variables</em> that are supposed to be overridden on the command line. These are variables that describe the location of tools needed by the build, like <code>MAKE</code> or <code>GREP</code>. If any such variable is specified, <code>configure</code> will use that value instead of trying to autodetect the tool. For instance, <code>bash configure MAKE=/opt/gnumake4.0/bin/make</code>.</p>
<p>If a configure argument exists, use that instead, e.g. use <code>--with-jtreg</code> instead of setting <code>JTREGEXE</code>.</p>
<p>Also note that, despite what autoconf claims, setting <code>CFLAGS</code> will not accomplish anything. Instead use <code>--with-extra-cflags</code> (and similar for <code>cxxflags</code> and <code>ldflags</code>).</p>
<h2 id="running-make">Running Make</h2>
@@ -476,7 +476,7 @@ <h3 id="common-make-targets">Common Make Targets</h3>
<h3 id="make-control-variables">Make Control Variables</h3>
<p>It is possible to control <code>make</code> behavior by overriding the value of <code>make</code> variables, either on the command line or in the environment.</p>
<p>Normally, this is <strong>not recommended</strong>. If used improperly, it can lead to a broken build. Unless you're well versed in the build system, this is hard to use properly. Therefore, <code>make</code> will print a warning if this is detected.</p>
<p>However, there are a few <code>make</code> variables, known as <em>control variables</em> that are supposed to be overriden on the command line. These make up the &quot;make time&quot; configuration, as opposed to the &quot;configure time&quot; configuration.</p>
<p>However, there are a few <code>make</code> variables, known as <em>control variables</em> that are supposed to be overridden on the command line. These make up the &quot;make time&quot; configuration, as opposed to the &quot;configure time&quot; configuration.</p>
<h4 id="general-make-control-variables">General Make Control Variables</h4>
<ul>
<li><code>JOBS</code> - Specify the number of jobs to build with. See <a href="#build-performance">Build Performance</a>.</li>
@@ -653,7 +653,7 @@ features, use `bash configure --help=short` instead.)
On Linux, BSD and AIX, it is possible to override where Java by default
searches for runtime/JNI libraries. This can be useful in situations where
there is a special shared directory for system JNI libraries. This setting
can in turn be overriden at runtime by setting the `java.library.path` property.
can in turn be overridden at runtime by setting the `java.library.path` property.

* `--with-jni-libpath=<path>` - Use the specified path as a default
when searching for runtime libraries.
@@ -719,7 +719,7 @@ hard to use properly. Therefore, `configure` will print a warning if this is
detected.

However, there are a few `configure` variables, known as *control variables*
that are supposed to be overriden on the command line. These are variables that
that are supposed to be overridden on the command line. These are variables that
describe the location of tools needed by the build, like `MAKE` or `GREP`. If
any such variable is specified, `configure` will use that value instead of
trying to autodetect the tool. For instance, `bash configure
@@ -799,7 +799,7 @@ broken build. Unless you're well versed in the build system, this is hard to
use properly. Therefore, `make` will print a warning if this is detected.

However, there are a few `make` variables, known as *control variables* that
are supposed to be overriden on the command line. These make up the "make time"
are supposed to be overridden on the command line. These make up the "make time"
configuration, as opposed to the "configure time" configuration.

#### General Make Control Variables
@@ -76,7 +76,6 @@ java.datatransfer_COPY += flavormap.properties

################################################################################

java.desktop_DISABLED_WARNINGS += missing-explicit-ctor
java.desktop_DOCLINT += -Xdoclint:all/protected,-reference \
'-Xdoclint/package:java.*,javax.*'
java.desktop_COPY += .gif .png .wav .txt .xml .css .pf
@@ -295,10 +294,6 @@ java.xml.crypto_CLEAN += .properties

################################################################################

jdk.accessibility_DISABLED_WARNINGS += missing-explicit-ctor

################################################################################

jdk.charsets_COPY += .dat

################################################################################
@@ -70,7 +70,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
# Linux : remove unused code+data in link step
if test "x$ENABLE_LINKTIME_GC" = xtrue; then
if test "x$OPENJDK_TARGET_CPU" = xs390x; then
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,--gc-sections -Wl,--print-gc-sections"
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,--gc-sections"
else
BASIC_LDFLAGS_JDK_ONLY="$BASIC_LDFLAGS_JDK_ONLY -Wl,--gc-sections"
fi
@@ -1115,11 +1115,17 @@ int MachCallDynamicJavaNode::ret_addr_offset() {
}

int MachCallRuntimeNode::ret_addr_offset() {
if (rule() == CallRuntimeDirect_rule) {
// CallRuntimeDirectNode uses call_c.
#if defined(ABI_ELFv2)
return 28;
return 28;
#else
return 40;
return 40;
#endif
}
assert(rule() == CallLeafDirect_rule, "unexpected node with rule %u", rule());
// CallLeafDirectNode uses bl.
return 4;
}

int MachCallNativeNode::ret_addr_offset() {
@@ -3578,6 +3584,7 @@ encode %{
call->_tf = _tf;
call->_entry_point = _entry_point;
call->_cnt = _cnt;
call->_guaranteed_safepoint = true;
call->_oop_map = _oop_map;
call->_jvms = _jvms;
call->_jvmadj = _jvmadj;
@@ -3778,14 +3785,14 @@ encode %{
call->_tf = _tf;
call->_entry_point = _entry_point;
call->_cnt = _cnt;
call->_guaranteed_safepoint = false;
call->_oop_map = _oop_map;
guarantee(!_jvms, "You must clone the jvms and adapt the offsets by fix_jvms().");
call->_jvms = NULL;
call->_jvmadj = _jvmadj;
call->_in_rms = _in_rms;
call->_nesting = _nesting;


// New call needs all inputs of old call.
// Req...
for (uint i = 0; i < req(); ++i) {
@@ -308,7 +308,7 @@ static int sizeof_FFree_Float_Stack_All = -1;

int MachCallRuntimeNode::ret_addr_offset() {
assert(sizeof_FFree_Float_Stack_All != -1, "must have been emitted already");
return sizeof_FFree_Float_Stack_All + 5 + pre_call_resets_size();
return 5 + pre_call_resets_size() + (_leaf_no_fp ? 0 : sizeof_FFree_Float_Stack_All);
}

int MachCallNativeNode::ret_addr_offset() {
@@ -482,27 +482,6 @@ class G1RemSetScanState : public CHeapObj<mtGC> {
}
};

G1RemSet::G1RemSet(G1CollectedHeap* g1h,
G1CardTable* ct,
G1HotCardCache* hot_card_cache) :
_scan_state(new G1RemSetScanState()),
_prev_period_summary(false),
_g1h(g1h),
_ct(ct),
_g1p(_g1h->policy()),
_hot_card_cache(hot_card_cache),
_sampling_task(NULL) {
}

G1RemSet::~G1RemSet() {
delete _scan_state;
delete _sampling_task;
}

void G1RemSet::initialize(uint max_reserved_regions) {
_scan_state->initialize(max_reserved_regions);
}

class G1YoungRemSetSamplingClosure : public HeapRegionClosure {
SuspendibleThreadSetJoiner* _sts;
size_t _regions_visited;
@@ -537,6 +516,19 @@ class G1YoungRemSetSamplingClosure : public HeapRegionClosure {

// Task handling young gen remembered set sampling.
class G1RemSetSamplingTask : public G1ServiceTask {
// Helper to account virtual time.
class VTimer {
double _start;
public:
VTimer() : _start(os::elapsedVTime()) { }
double duration() { return os::elapsedVTime() - _start; }
};

double _vtime_accum; // Accumulated virtual time.
void update_vtime_accum(double duration) {
_vtime_accum += duration;
}

// Sample the current length of remembered sets for young.
//
// At the end of the GC G1 determines the length of the young gen based on
@@ -551,6 +543,7 @@ class G1RemSetSamplingTask : public G1ServiceTask {
void sample_young_list_rs_length(SuspendibleThreadSetJoiner* sts){
G1CollectedHeap* g1h = G1CollectedHeap::heap();
G1Policy* policy = g1h->policy();
VTimer vtime;

if (policy->use_adaptive_young_list_length()) {
G1YoungRemSetSamplingClosure cl(sts);
@@ -562,12 +555,7 @@ class G1RemSetSamplingTask : public G1ServiceTask {
policy->revise_young_list_target_length_if_necessary(cl.sampled_rs_length());
}
}
}

// To avoid extensive rescheduling if the task is executed a bit early. The task is
// only rescheduled if the expected time is more than 1ms away.
bool should_reschedule() {
return reschedule_delay_ms() > 1;
update_vtime_accum(vtime.duration());
}

// There is no reason to do the sampling if a GC occurred recently. We use the
@@ -586,24 +574,58 @@ class G1RemSetSamplingTask : public G1ServiceTask {
SuspendibleThreadSetJoiner sts;

// Reschedule if a GC happened too recently.
if (should_reschedule()) {
// Calculate the delay given the last GC and the interval.
schedule(reschedule_delay_ms());
jlong delay_ms = reschedule_delay_ms();
if (delay_ms > 0) {
schedule(delay_ms);
return;
}

// Do the actual sampling.
sample_young_list_rs_length(&sts);
schedule(G1ConcRefinementServiceIntervalMillis);
}

double vtime_accum() {
// Only report vtime if supported by the os.
if (!os::supports_vtime()) {
return 0.0;
}
return _vtime_accum;
}
};

G1RemSet::G1RemSet(G1CollectedHeap* g1h,
G1CardTable* ct,
G1HotCardCache* hot_card_cache) :
_scan_state(new G1RemSetScanState()),
_prev_period_summary(false),
_g1h(g1h),
_ct(ct),
_g1p(_g1h->policy()),
_hot_card_cache(hot_card_cache),
_sampling_task(NULL) {
}

G1RemSet::~G1RemSet() {
delete _scan_state;
delete _sampling_task;
}

void G1RemSet::initialize(uint max_reserved_regions) {
_scan_state->initialize(max_reserved_regions);
}

void G1RemSet::initialize_sampling_task(G1ServiceThread* thread) {
assert(_sampling_task == NULL, "Sampling task already initialized");
_sampling_task = new G1RemSetSamplingTask("Remembered Set Sampling Task");
thread->register_task(_sampling_task);
}

double G1RemSet::sampling_task_vtime() {
assert(_sampling_task != NULL, "Must have been initialized");
return _sampling_task->vtime_accum();
}

// Helper class to scan and detect ranges of cards that need to be scanned on the
// card table.
class G1CardTableScanner : public StackObj {
@@ -48,8 +48,8 @@ class G1RemSetScanState;
class G1ParScanThreadState;
class G1ParScanThreadStateSet;
class G1Policy;
class G1RemSetSamplingTask;
class G1ScanCardClosure;
class G1ServiceTask;
class G1ServiceThread;
class HeapRegionClaimer;

@@ -67,7 +67,7 @@ class G1RemSet: public CHeapObj<mtGC> {
G1CardTable* _ct;
G1Policy* _g1p;
G1HotCardCache* _hot_card_cache;
G1ServiceTask* _sampling_task;
G1RemSetSamplingTask* _sampling_task;

void print_merge_heap_roots_stats();

@@ -87,6 +87,9 @@ class G1RemSet: public CHeapObj<mtGC> {
// Initialize and schedule young remembered set sampling task.
void initialize_sampling_task(G1ServiceThread* thread);

// Accumulated vtime used by the sampling task.
double sampling_task_vtime();

// Scan all cards in the non-collection set regions that potentially contain
// references into the current whole collection set.
void scan_heap_roots(G1ParScanThreadState* pss,
@@ -30,7 +30,6 @@
#include "gc/g1/g1DirtyCardQueue.hpp"
#include "gc/g1/g1RemSet.hpp"
#include "gc/g1/g1RemSetSummary.hpp"
#include "gc/g1/g1ServiceThread.hpp"
#include "gc/g1/heapRegion.hpp"
#include "gc/g1/heapRegionRemSet.hpp"
#include "memory/allocation.inline.hpp"
@@ -53,7 +52,7 @@ void G1RemSetSummary::update() {
g1h->concurrent_refine()->threads_do(&collector);
_num_coarsenings = HeapRegionRemSet::n_coarsenings();

set_service_thread_vtime(g1h->service_thread()->vtime_accum());
set_sampling_task_vtime(g1h->rem_set()->sampling_task_vtime());
}

void G1RemSetSummary::set_rs_thread_vtime(uint thread, double value) {
@@ -72,7 +71,7 @@ G1RemSetSummary::G1RemSetSummary(bool should_update) :
_num_coarsenings(0),
_num_vtimes(G1ConcurrentRefine::max_num_threads()),
_rs_threads_vtimes(NEW_C_HEAP_ARRAY(double, _num_vtimes, mtGC)),
_service_thread_vtime(0.0f) {
_sampling_task_vtime(0.0f) {

memset(_rs_threads_vtimes, 0, sizeof(double) * _num_vtimes);

@@ -93,7 +92,7 @@ void G1RemSetSummary::set(G1RemSetSummary* other) {

memcpy(_rs_threads_vtimes, other->_rs_threads_vtimes, sizeof(double) * _num_vtimes);

set_service_thread_vtime(other->service_thread_vtime());
set_sampling_task_vtime(other->sampling_task_vtime());
}

void G1RemSetSummary::subtract_from(G1RemSetSummary* other) {
@@ -106,7 +105,7 @@ void G1RemSetSummary::subtract_from(G1RemSetSummary* other) {
set_rs_thread_vtime(i, other->rs_thread_vtime(i) - rs_thread_vtime(i));
}

_service_thread_vtime = other->service_thread_vtime() - _service_thread_vtime;
_sampling_task_vtime = other->sampling_task_vtime() - _sampling_task_vtime;
}

class RegionTypeCounter {
@@ -327,8 +326,8 @@ void G1RemSetSummary::print_on(outputStream* out) {
out->print(" %5.2f", rs_thread_vtime(i));
}
out->cr();
out->print_cr(" Service thread time (s)");
out->print_cr(" %5.2f", service_thread_vtime());
out->print_cr(" Sampling task time (ms)");
out->print_cr(" %5.3f", sampling_task_vtime() * MILLIUNITS);

HRRSStatsIter blk;
G1CollectedHeap::heap()->heap_region_iterate(&blk);
@@ -38,11 +38,11 @@ class G1RemSetSummary {
size_t _num_vtimes;
double* _rs_threads_vtimes;

double _service_thread_vtime;
double _sampling_task_vtime;

void set_rs_thread_vtime(uint thread, double value);
void set_service_thread_vtime(double value) {
_service_thread_vtime = value;
void set_sampling_task_vtime(double value) {
_sampling_task_vtime = value;
}

// update this summary with current data from various places
@@ -62,8 +62,8 @@ class G1RemSetSummary {

double rs_thread_vtime(uint thread) const;

double service_thread_vtime() const {
return _service_thread_vtime;
double sampling_task_vtime() const {
return _sampling_task_vtime;
}

size_t num_coarsenings() const {

0 comments on commit ec6c1f4

Please sign in to comment.