mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-22 21:59:52 +00:00
7129514: time warp warnings after 7117303
Replace calls to os::javaTimeMillis() that are used to update the milliseconds since the last GC to an equivalent that uses a monotonically non-decreasing time source. Reviewed-by: ysr, jmasa
This commit is contained in:
parent
6a31970946
commit
fa9d6d7682
@ -6092,7 +6092,11 @@ void CMSCollector::sweep(bool asynch) {
|
||||
_inter_sweep_timer.reset();
|
||||
_inter_sweep_timer.start();
|
||||
|
||||
update_time_of_last_gc(os::javaTimeMillis());
|
||||
// We need to use a monotonically non-deccreasing time in ms
|
||||
// or we will see time-warp warnings and os::javaTimeMillis()
|
||||
// does not guarantee monotonicity.
|
||||
jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
|
||||
update_time_of_last_gc(now);
|
||||
|
||||
// NOTE on abstract state transitions:
|
||||
// Mutators allocate-live and/or mark the mod-union table dirty
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2012, 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
|
||||
@ -1042,7 +1042,11 @@ void ParNewGeneration::collect(bool full,
|
||||
size_policy->avg_survived()->sample(from()->used());
|
||||
}
|
||||
|
||||
update_time_of_last_gc(os::javaTimeMillis());
|
||||
// We need to use a monotonically non-deccreasing time in ms
|
||||
// or we will see time-warp warnings and os::javaTimeMillis()
|
||||
// does not guarantee monotonicity.
|
||||
jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
|
||||
update_time_of_last_gc(now);
|
||||
|
||||
SpecializationStats::print();
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2012, 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
|
||||
@ -655,7 +655,12 @@ void DefNewGeneration::collect(bool full,
|
||||
from()->set_concurrent_iteration_safe_limit(from()->top());
|
||||
to()->set_concurrent_iteration_safe_limit(to()->top());
|
||||
SpecializationStats::print();
|
||||
update_time_of_last_gc(os::javaTimeMillis());
|
||||
|
||||
// We need to use a monotonically non-deccreasing time in ms
|
||||
// or we will see time-warp warnings and os::javaTimeMillis()
|
||||
// does not guarantee monotonicity.
|
||||
jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
|
||||
update_time_of_last_gc(now);
|
||||
}
|
||||
|
||||
class RemoveForwardPointerClosure: public ObjectClosure {
|
||||
|
||||
@ -176,7 +176,11 @@ void GenMarkSweep::invoke_at_safepoint(int level, ReferenceProcessor* rp,
|
||||
|
||||
// Update time of last gc for all generations we collected
|
||||
// (which curently is all the generations in the heap).
|
||||
gch->update_time_of_last_gc(os::javaTimeMillis());
|
||||
// We need to use a monotonically non-deccreasing time in ms
|
||||
// or we will see time-warp warnings and os::javaTimeMillis()
|
||||
// does not guarantee monotonicity.
|
||||
jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
|
||||
gch->update_time_of_last_gc(now);
|
||||
}
|
||||
|
||||
void GenMarkSweep::allocate_stacks() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user