mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-08 04:29:28 +00:00
8215727: Restore JFR thread sampler loop to old / previous behavior
Reviewed-by: egahlin, mgronlun
This commit is contained in:
parent
1dae61a374
commit
9cbca323f7
@ -287,13 +287,13 @@ static const uint MAX_NR_OF_NATIVE_SAMPLES = 1;
|
||||
|
||||
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();
|
||||
}
|
||||
@ -495,7 +495,7 @@ void JfrThreadSampler::task_stacktrace(JfrSampleType type, JavaThread** last_thr
|
||||
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;
|
||||
|
||||
{
|
||||
@ -509,7 +509,7 @@ void JfrThreadSampler::task_stacktrace(JfrSampleType type, JavaThread** last_thr
|
||||
_cur_index = tlh.list()->find_index_of_JavaThread(*last_thread);
|
||||
JavaThread* current = _cur_index != -1 ? *last_thread : NULL;
|
||||
|
||||
while (num_sample_attempts < sample_limit) {
|
||||
while (num_samples < sample_limit) {
|
||||
current = next_thread(tlh.list(), start, current);
|
||||
if (current == NULL) {
|
||||
break;
|
||||
@ -520,8 +520,9 @@ void JfrThreadSampler::task_stacktrace(JfrSampleType type, JavaThread** last_thr
|
||||
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
|
||||
}
|
||||
@ -529,7 +530,7 @@ void JfrThreadSampler::task_stacktrace(JfrSampleType type, JavaThread** last_thr
|
||||
log_trace(jfr)("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);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user