src/share/vm/runtime/sweeper.cpp
Print this page
rev 4203 : 8008208: Event tracing for code cache subsystems can give wrong timestamps
Reviewed-by:
@@ -146,16 +146,16 @@
uint NMethodSweeper::_highest_marked = 0;
long NMethodSweeper::_was_full_traversal = 0;
int NMethodSweeper::_number_of_flushes = 0; // Total of full traversals caused by full cache
int NMethodSweeper::_total_nof_methods_reclaimed = 0;
-long NMethodSweeper::_total_time_sweeping = 0;
-long NMethodSweeper::_total_time_this_sweep = 0;
-long NMethodSweeper::_peak_sweep_time = 0;
-long NMethodSweeper::_peak_sweep_fraction_time = 0;
-long NMethodSweeper::_total_disconnect_time = 0;
-long NMethodSweeper::_peak_disconnect_time = 0;
+jlong NMethodSweeper::_total_time_sweeping = 0;
+jlong NMethodSweeper::_total_time_this_sweep = 0;
+jlong NMethodSweeper::_peak_sweep_time = 0;
+jlong NMethodSweeper::_peak_sweep_fraction_time = 0;
+jlong NMethodSweeper::_total_disconnect_time = 0;
+jlong NMethodSweeper::_peak_disconnect_time = 0;
class MarkActivationClosure: public CodeBlobClosure {
public:
virtual void do_code_blob(CodeBlob* cb) {
// If we see an activation belonging to a non_entrant nmethod, we mark it.
@@ -255,13 +255,11 @@
}
}
void NMethodSweeper::sweep_code_cache() {
- long sweep_start_counter, sweep_end_counter;
- long sweep_time;
- sweep_start_counter = os::elapsed_counter();
+ jlong sweep_start_counter = os::elapsed_counter();
_flushed_count = 0;
_zombified_count = 0;
_marked_count = 0;
@@ -322,12 +320,12 @@
if (PrintMethodFlushing) {
tty->print_cr("### Couldn't make progress on some nmethods so stopping sweep");
}
}
- sweep_end_counter = os::elapsed_counter();
- sweep_time = sweep_end_counter - sweep_start_counter;
+ jlong sweep_end_counter = os::elapsed_counter();
+ jlong sweep_time = sweep_end_counter - sweep_start_counter;
_total_time_sweeping += sweep_time;
_total_time_this_sweep += sweep_time;
_peak_sweep_fraction_time = MAX2(sweep_time, _peak_sweep_fraction_time);
_total_nof_methods_reclaimed += _flushed_count;
@@ -521,23 +519,19 @@
void NMethodSweeper::speculative_disconnect_nmethods(bool is_full) {
// If there was a race in detecting full code cache, only run
// one vm op for it or keep the compiler shut off
- long disconnect_start_counter;
- long disconnect_end_counter;
- long disconnect_time;
-
if ((!was_full()) && (is_full)) {
if (!CodeCache::needs_flushing()) {
log_sweep("restart_compiler");
CompileBroker::set_should_compile_new_jobs(CompileBroker::run_compilation);
return;
}
}
- disconnect_start_counter = os::elapsed_counter();
+ jlong disconnect_start_counter = os::elapsed_counter();
// Traverse the code cache trying to dump the oldest nmethods
uint curr_max_comp_id = CompileBroker::get_compilation_id();
uint flush_target = ((curr_max_comp_id - _highest_marked) >> 1) + _highest_marked;
log_sweep("start_cleaning");
@@ -581,12 +575,12 @@
if (was_full()) {
_last_was_full = os::javaTimeMillis();
CompileBroker::set_should_compile_new_jobs(CompileBroker::stop_compilation);
}
- disconnect_end_counter = os::elapsed_counter();
- disconnect_time = disconnect_end_counter - disconnect_start_counter;
+ jlong disconnect_end_counter = os::elapsed_counter();
+ jlong disconnect_time = disconnect_end_counter - disconnect_start_counter;
_total_disconnect_time += disconnect_time;
_peak_disconnect_time = MAX2(disconnect_time, _peak_disconnect_time);
EventCleanCodeCache event(UNTIMED);
if (event.should_commit()) {