Skip to content
Permalink
Browse files

Merge

  • Loading branch information
prsadhuk committed Dec 3, 2019
2 parents 37c0694 + c7a2e3b commit 999f05b13b44f9c828a2764ba9dfa7c4e20b28c5
Showing with 848 additions and 816 deletions.
  1. +25 −0 make/langtools/tools/propertiesparser/resources/templates.properties
  2. +11 −7 src/hotspot/share/code/nmethod.cpp
  3. +25 −25 src/hotspot/share/gc/g1/g1Analytics.cpp
  4. +3 −3 src/hotspot/share/gc/g1/g1Analytics.hpp
  5. +1 −1 src/hotspot/share/gc/g1/g1CollectedHeap.cpp
  6. +64 −72 src/hotspot/share/gc/g1/g1CollectionSet.cpp
  7. +21 −5 src/hotspot/share/gc/g1/g1CollectionSet.hpp
  8. +1 −1 src/hotspot/share/gc/g1/g1ConcurrentMark.cpp
  9. +8 −8 src/hotspot/share/gc/g1/g1IHOPControl.cpp
  10. +1 −1 src/hotspot/share/gc/g1/g1IHOPControl.hpp
  11. +43 −56 src/hotspot/share/gc/g1/g1Policy.cpp
  12. +19 −25 src/hotspot/share/gc/g1/g1Policy.hpp
  13. +5 −5 src/hotspot/share/gc/g1/g1Predictions.hpp
  14. +1 −1 src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp
  15. +35 −41 src/hotspot/share/gc/g1/{survRateGroup.cpp → g1SurvRateGroup.cpp}
  16. +103 −0 src/hotspot/share/gc/g1/g1SurvRateGroup.hpp
  17. +3 −8 src/hotspot/share/gc/g1/heapRegion.cpp
  18. +10 −61 src/hotspot/share/gc/g1/heapRegion.hpp
  19. +48 −0 src/hotspot/share/gc/g1/heapRegion.inline.hpp
  20. +24 −43 src/hotspot/share/gc/g1/heapRegionRemSet.cpp
  21. +5 −13 src/hotspot/share/gc/g1/heapRegionRemSet.hpp
  22. +7 −4 src/hotspot/share/gc/g1/heapRegionRemSet.inline.hpp
  23. +8 −13 src/hotspot/share/gc/g1/sparsePRT.cpp
  24. +49 −55 src/hotspot/share/gc/g1/sparsePRT.hpp
  25. +36 −0 src/hotspot/share/gc/g1/sparsePRT.inline.hpp
  26. +0 −91 src/hotspot/share/gc/g1/survRateGroup.hpp
  27. +2 −2 src/hotspot/share/oops/instanceKlass.cpp
  28. +23 −34 src/hotspot/share/prims/jvmtiExport.cpp
  29. +1 −0 src/hotspot/share/prims/jvmtiExport.hpp
  30. +3 −4 src/hotspot/share/prims/jvmtiExtensions.cpp
  31. +49 −6 src/hotspot/share/prims/jvmtiImpl.cpp
  32. +16 −2 src/hotspot/share/prims/jvmtiImpl.hpp
  33. +1 −1 src/hotspot/share/runtime/mutexLocker.cpp
  34. +27 −3 src/hotspot/share/runtime/serviceThread.cpp
  35. +6 −3 src/hotspot/share/runtime/serviceThread.hpp
  36. +1 −1 src/hotspot/share/runtime/thread.cpp
  37. +1 −0 src/hotspot/share/runtime/thread.hpp
  38. +2 −0 src/hotspot/share/runtime/thread.inline.hpp
  39. +0 −169 src/java.base/share/classes/java/time/overview.html
  40. +4 −4 src/java.base/share/classes/sun/security/ssl/NamedGroup.java
  41. +1 −1 src/java.base/share/classes/sun/security/ssl/SSLEngineInputRecord.java
  42. +2 −2 src/java.base/share/classes/sun/security/ssl/SignatureScheme.java
  43. +4 −4 src/java.base/share/classes/sun/security/util/KeyStoreDelegator.java
  44. +1 −1 src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java
  45. +0 −1 src/jdk.compiler/share/classes/META-INF/services/com.sun.tools.javac.platform.PlatformProvider
  46. +1 −1 src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties
  47. +0 −1 src/jdk.compiler/share/classes/com/sun/tools/javac/services/javax.tools.JavaCompilerTool
  48. +20 −3 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java
  49. +12 −3 ...jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties
  50. +19 −19 test/hotspot/gtest/gc/g1/test_g1Predictions.cpp
  51. +0 −1 test/hotspot/jtreg/ProblemList.txt
  52. +30 −11 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/extension/EX03/ex03t001/ex03t001.cpp
  53. +66 −0 test/jdk/sun/security/provider/KeyStore/WrongStoreType.java
@@ -1,3 +1,28 @@
#
# Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

toplevel.decl=\
package {0};\n\
\n\
@@ -1565,14 +1565,18 @@ void nmethod::flush_dependencies(bool delete_immediately) {
// Transfer information from compilation to jvmti
void nmethod::post_compiled_method_load_event() {

Method* moop = method();
// This is a bad time for a safepoint. We don't want
// this nmethod to get unloaded while we're queueing the event.
NoSafepointVerifier nsv;

Method* m = method();
HOTSPOT_COMPILED_METHOD_LOAD(
(char *) moop->klass_name()->bytes(),
moop->klass_name()->utf8_length(),
(char *) moop->name()->bytes(),
moop->name()->utf8_length(),
(char *) moop->signature()->bytes(),
moop->signature()->utf8_length(),
(char *) m->klass_name()->bytes(),
m->klass_name()->utf8_length(),
(char *) m->name()->bytes(),
m->name()->utf8_length(),
(char *) m->signature()->bytes(),
m->signature()->utf8_length(),
insts_begin(), insts_size());

if (JvmtiExport::should_post_compiled_method_load() ||
@@ -125,16 +125,16 @@ bool G1Analytics::enough_samples_available(TruncatedSeq const* seq) const {
return seq->num() >= 3;
}

double G1Analytics::get_new_unit_prediction(TruncatedSeq const* seq) const {
return _predictor->get_new_unit_prediction(seq);
double G1Analytics::predict_in_unit_interval(TruncatedSeq const* seq) const {
return _predictor->predict_in_unit_interval(seq);
}

size_t G1Analytics::get_new_size_prediction(TruncatedSeq const* seq) const {
return (size_t)get_new_lower_zero_bound_prediction(seq);
size_t G1Analytics::predict_size(TruncatedSeq const* seq) const {
return (size_t)predict_zero_bounded(seq);
}

double G1Analytics::get_new_lower_zero_bound_prediction(TruncatedSeq const* seq) const {
return _predictor->get_new_lower_zero_bound_prediction(seq);
double G1Analytics::predict_zero_bounded(TruncatedSeq const* seq) const {
return _predictor->predict_zero_bounded(seq);
}

int G1Analytics::num_alloc_rate_ms() const {
@@ -229,87 +229,87 @@ void G1Analytics::report_rs_length(double rs_length) {
}

double G1Analytics::predict_alloc_rate_ms() const {
return get_new_lower_zero_bound_prediction(_alloc_rate_ms_seq);
return predict_zero_bounded(_alloc_rate_ms_seq);
}

double G1Analytics::predict_concurrent_refine_rate_ms() const {
return get_new_lower_zero_bound_prediction(_concurrent_refine_rate_ms_seq);
return predict_zero_bounded(_concurrent_refine_rate_ms_seq);
}

double G1Analytics::predict_logged_cards_rate_ms() const {
return get_new_lower_zero_bound_prediction(_logged_cards_rate_ms_seq);
return predict_zero_bounded(_logged_cards_rate_ms_seq);
}

double G1Analytics::predict_young_card_merge_to_scan_ratio() const {
return get_new_unit_prediction(_young_card_merge_to_scan_ratio_seq);
return predict_in_unit_interval(_young_card_merge_to_scan_ratio_seq);
}

size_t G1Analytics::predict_scan_card_num(size_t rs_length, bool for_young_gc) const {
if (for_young_gc || !enough_samples_available(_mixed_card_merge_to_scan_ratio_seq)) {
return (size_t)(rs_length * predict_young_card_merge_to_scan_ratio());
} else {
return (size_t)(rs_length * get_new_unit_prediction(_mixed_card_merge_to_scan_ratio_seq));
return (size_t)(rs_length * predict_in_unit_interval(_mixed_card_merge_to_scan_ratio_seq));
}
}

double G1Analytics::predict_card_merge_time_ms(size_t card_num, bool for_young_gc) const {
if (for_young_gc || !enough_samples_available(_mixed_cost_per_card_merge_ms_seq)) {
return card_num * get_new_lower_zero_bound_prediction(_young_cost_per_card_merge_ms_seq);
return card_num * predict_zero_bounded(_young_cost_per_card_merge_ms_seq);
} else {
return card_num * get_new_lower_zero_bound_prediction(_mixed_cost_per_card_merge_ms_seq);
return card_num * predict_zero_bounded(_mixed_cost_per_card_merge_ms_seq);
}
}

double G1Analytics::predict_card_scan_time_ms(size_t card_num, bool for_young_gc) const {
if (for_young_gc || !enough_samples_available(_mixed_cost_per_card_scan_ms_seq)) {
return card_num * get_new_lower_zero_bound_prediction(_young_cost_per_card_scan_ms_seq);
return card_num * predict_zero_bounded(_young_cost_per_card_scan_ms_seq);
} else {
return card_num * get_new_lower_zero_bound_prediction(_mixed_cost_per_card_scan_ms_seq);
return card_num * predict_zero_bounded(_mixed_cost_per_card_scan_ms_seq);
}
}

double G1Analytics::predict_object_copy_time_ms_during_cm(size_t bytes_to_copy) const {
if (!enough_samples_available(_cost_per_byte_ms_during_cm_seq)) {
return (1.1 * bytes_to_copy) * get_new_lower_zero_bound_prediction(_copy_cost_per_byte_ms_seq);
return (1.1 * bytes_to_copy) * predict_zero_bounded(_copy_cost_per_byte_ms_seq);
} else {
return bytes_to_copy * get_new_lower_zero_bound_prediction(_cost_per_byte_ms_during_cm_seq);
return bytes_to_copy * predict_zero_bounded(_cost_per_byte_ms_during_cm_seq);
}
}

double G1Analytics::predict_object_copy_time_ms(size_t bytes_to_copy, bool during_concurrent_mark) const {
if (during_concurrent_mark) {
return predict_object_copy_time_ms_during_cm(bytes_to_copy);
} else {
return bytes_to_copy * get_new_lower_zero_bound_prediction(_copy_cost_per_byte_ms_seq);
return bytes_to_copy * predict_zero_bounded(_copy_cost_per_byte_ms_seq);
}
}

double G1Analytics::predict_constant_other_time_ms() const {
return get_new_lower_zero_bound_prediction(_constant_other_time_ms_seq);
return predict_zero_bounded(_constant_other_time_ms_seq);
}

double G1Analytics::predict_young_other_time_ms(size_t young_num) const {
return young_num * get_new_lower_zero_bound_prediction(_young_other_cost_per_region_ms_seq);
return young_num * predict_zero_bounded(_young_other_cost_per_region_ms_seq);
}

double G1Analytics::predict_non_young_other_time_ms(size_t non_young_num) const {
return non_young_num * get_new_lower_zero_bound_prediction(_non_young_other_cost_per_region_ms_seq);
return non_young_num * predict_zero_bounded(_non_young_other_cost_per_region_ms_seq);
}

double G1Analytics::predict_remark_time_ms() const {
return get_new_lower_zero_bound_prediction(_concurrent_mark_remark_times_ms);
return predict_zero_bounded(_concurrent_mark_remark_times_ms);
}

double G1Analytics::predict_cleanup_time_ms() const {
return get_new_lower_zero_bound_prediction(_concurrent_mark_cleanup_times_ms);
return predict_zero_bounded(_concurrent_mark_cleanup_times_ms);
}

size_t G1Analytics::predict_rs_length() const {
return get_new_size_prediction(_rs_length_seq) + get_new_size_prediction(_rs_length_diff_seq);
return predict_size(_rs_length_seq) + predict_size(_rs_length_diff_seq);
}

size_t G1Analytics::predict_pending_cards() const {
return get_new_size_prediction(_pending_cards_seq);
return predict_size(_pending_cards_seq);
}

double G1Analytics::last_known_gc_end_time_sec() const {
@@ -84,9 +84,9 @@ class G1Analytics: public CHeapObj<mtGC> {
// The constant used is random but "small".
bool enough_samples_available(TruncatedSeq const* seq) const;

double get_new_unit_prediction(TruncatedSeq const* seq) const;
size_t get_new_size_prediction(TruncatedSeq const* seq) const;
double get_new_lower_zero_bound_prediction(TruncatedSeq const* seq) const;
double predict_in_unit_interval(TruncatedSeq const* seq) const;
size_t predict_size(TruncatedSeq const* seq) const;
double predict_zero_bounded(TruncatedSeq const* seq) const;

public:
G1Analytics(const G1Predictions* predictor);
@@ -4266,7 +4266,7 @@ class G1FreeCollectionSetTask : public AbstractGangTask {
HeapRegion* r = g1h->region_at(region_idx);
assert(!g1h->is_on_master_free_list(r), "sanity");

Atomic::add(&_rs_length, r->rem_set()->occupied_locked());
Atomic::add(&_rs_length, r->rem_set()->occupied());

if (!is_young) {
g1h->hot_card_cache()->reset_card_counts(r);

0 comments on commit 999f05b

Please sign in to comment.
You can’t perform that action at this time.