Mercurial > hg > icedtea8-forest > hotspot
changeset 10838:321a84a5e5b8
8215727: Restore JFR thread sampler loop to old / previous behavior
Reviewed-by: egahlin, mgronlun
Contributed-by: milan.mimica@gmail.com
author | mgronlun |
---|---|
date | Fri, 21 Dec 2018 16:56:40 +0100 |
parents | 002b9c947f0f |
children | bc185d95c9f5 |
files | src/share/vm/jfr/periodic/sampling/jfrThreadSampler.cpp |
diffstat | 1 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/jfr/periodic/sampling/jfrThreadSampler.cpp Wed Jun 10 11:33:17 2020 +0200 +++ b/src/share/vm/jfr/periodic/sampling/jfrThreadSampler.cpp Fri Dec 21 16:56:40 2018 +0100 @@ -285,13 +285,13 @@ void JfrThreadSampleClosure::commit_events(JfrSampleType type) { if (JAVA_SAMPLE == type) { - assert(_added_java <= MAX_NR_OF_JAVA_SAMPLES, "invariant"); + assert(_added_java > 0 && _added_java <= MAX_NR_OF_JAVA_SAMPLES, "invariant"); for (uint i = 0; i < _added_java; ++i) { _events[i].commit(); } } else { assert(NATIVE_SAMPLE == type, "invariant"); - assert(_added_native <= MAX_NR_OF_NATIVE_SAMPLES, "invariant"); + assert(_added_native > 0 && _added_native <= MAX_NR_OF_NATIVE_SAMPLES, "invariant"); for (uint i = 0; i < _added_native; ++i) { _events_native[i].commit(); } @@ -537,7 +537,7 @@ JfrThreadSampleClosure sample_task(samples, samples_native); const uint sample_limit = JAVA_SAMPLE == type ? MAX_NR_OF_JAVA_SAMPLES : MAX_NR_OF_NATIVE_SAMPLES; - uint num_sample_attempts = 0; + uint num_samples = 0; JavaThread* start = NULL; { @@ -555,7 +555,7 @@ JavaThread* current = Threads::includes(*last_thread) ? *last_thread : NULL; JavaThread* start = NULL; - while (num_sample_attempts < sample_limit) { + while (num_samples < sample_limit) { current = next_thread(threads_list, index, start, current); if (current == NULL) { break; @@ -566,8 +566,9 @@ if (current->is_Compiler_thread()) { continue; } - sample_task.do_sample_thread(current, _frames, _max_frames, type); - num_sample_attempts++; + if (sample_task.do_sample_thread(current, _frames, _max_frames, type)) { + num_samples++; + } } *last_thread = current; // remember the thread we last attempted to sample FREE_C_HEAP_ARRAY(JavaThread *, threads_list, mtInternal); @@ -576,7 +577,7 @@ if (LogJFR && Verbose) tty->print_cr("JFR thread sampling done in %3.7f secs with %d java %d native samples", sample_time.seconds(), sample_task.java_entries(), sample_task.native_entries()); } - if (num_sample_attempts > 0) { + if (num_samples > 0) { sample_task.commit_events(type); } }