8077279: assert(ic->is_clean()) failed: IC should be clean
Reviewed-by: rbackman, thartmann
This commit is contained in:
parent
8098f06af1
commit
d9e465adaf
@ -190,7 +190,12 @@ class CodeCache : AllStatic {
|
||||
static void set_needs_cache_clean(bool v) { _needs_cache_clean = v; }
|
||||
static void clear_inline_caches(); // clear all inline caches
|
||||
|
||||
// Returns the CodeBlobType for nmethods of the given compilation level
|
||||
// Returns the CodeBlobType for the given nmethod
|
||||
static int get_code_blob_type(nmethod* nm) {
|
||||
return get_code_heap(nm)->code_blob_type();
|
||||
}
|
||||
|
||||
// Returns the CodeBlobType for the given compilation level
|
||||
static int get_code_blob_type(int comp_level) {
|
||||
if (comp_level == CompLevel_none ||
|
||||
comp_level == CompLevel_simple ||
|
||||
@ -287,7 +292,7 @@ private:
|
||||
// Iterate over all CodeBlobs
|
||||
_code_blob_type = CodeBlobType::All;
|
||||
} else if (nm != NULL) {
|
||||
_code_blob_type = CodeCache::get_code_blob_type(nm->comp_level());
|
||||
_code_blob_type = CodeCache::get_code_blob_type(nm);
|
||||
} else {
|
||||
// Only iterate over method code heaps, starting with non-profiled
|
||||
_code_blob_type = CodeBlobType::MethodNonProfiled;
|
||||
|
@ -1421,7 +1421,7 @@ void nmethod::flush() {
|
||||
Events::log(JavaThread::current(), "flushing nmethod " INTPTR_FORMAT, this);
|
||||
if (PrintMethodFlushing) {
|
||||
tty->print_cr("*flushing nmethod %3d/" INTPTR_FORMAT ". Live blobs:" UINT32_FORMAT "/Free CodeCache:" SIZE_FORMAT "Kb",
|
||||
_compile_id, this, CodeCache::nof_blobs(), CodeCache::unallocated_capacity(CodeCache::get_code_blob_type(_comp_level))/1024);
|
||||
_compile_id, this, CodeCache::nof_blobs(), CodeCache::unallocated_capacity(CodeCache::get_code_blob_type(this))/1024);
|
||||
}
|
||||
|
||||
// We need to deallocate any ExceptionCache data.
|
||||
|
@ -678,7 +678,7 @@ void NMethodSweeper::possibly_flush(nmethod* nm) {
|
||||
// ReservedCodeCacheSize
|
||||
int reset_val = hotness_counter_reset_val();
|
||||
int time_since_reset = reset_val - nm->hotness_counter();
|
||||
int code_blob_type = (CodeCache::get_code_blob_type(nm->comp_level()));
|
||||
int code_blob_type = CodeCache::get_code_blob_type(nm);
|
||||
double threshold = -reset_val + (CodeCache::reverse_free_ratio(code_blob_type) * NmethodSweepActivity);
|
||||
// The less free space in the code cache we have - the bigger reverse_free_ratio() is.
|
||||
// I.e., 'threshold' increases with lower available space in the code cache and a higher
|
||||
|
Loading…
Reference in New Issue
Block a user