mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 10:04:42 +02:00
Merge
This commit is contained in:
commit
7b6d31b4a5
23 changed files with 275 additions and 346 deletions
|
@ -1730,8 +1730,8 @@ CompactibleFreeListSpace::returnChunkToDictionary(FreeChunk* chunk) {
|
|||
_dictionary->return_chunk(chunk);
|
||||
#ifndef PRODUCT
|
||||
if (CMSCollector::abstract_state() != CMSCollector::Sweeping) {
|
||||
TreeChunk<FreeChunk, AdaptiveFreeList>* tc = TreeChunk<FreeChunk, AdaptiveFreeList>::as_TreeChunk(chunk);
|
||||
TreeList<FreeChunk, AdaptiveFreeList>* tl = tc->list();
|
||||
TreeChunk<FreeChunk, AdaptiveFreeList<FreeChunk> >* tc = TreeChunk<FreeChunk, AdaptiveFreeList<FreeChunk> >::as_TreeChunk(chunk);
|
||||
TreeList<FreeChunk, AdaptiveFreeList<FreeChunk> >* tl = tc->list();
|
||||
tl->verify_stats();
|
||||
}
|
||||
#endif // PRODUCT
|
||||
|
@ -2541,10 +2541,10 @@ void CompactibleFreeListSpace::verifyIndexedFreeList(size_t size) const {
|
|||
|
||||
#ifndef PRODUCT
|
||||
void CompactibleFreeListSpace::check_free_list_consistency() const {
|
||||
assert((TreeChunk<FreeChunk, AdaptiveFreeList>::min_size() <= IndexSetSize),
|
||||
assert((TreeChunk<FreeChunk, AdaptiveFreeList<FreeChunk> >::min_size() <= IndexSetSize),
|
||||
"Some sizes can't be allocated without recourse to"
|
||||
" linear allocation buffers");
|
||||
assert((TreeChunk<FreeChunk, AdaptiveFreeList>::min_size()*HeapWordSize == sizeof(TreeChunk<FreeChunk, AdaptiveFreeList>)),
|
||||
assert((TreeChunk<FreeChunk, AdaptiveFreeList<FreeChunk> >::min_size()*HeapWordSize == sizeof(TreeChunk<FreeChunk, AdaptiveFreeList<FreeChunk> >)),
|
||||
"else MIN_TREE_CHUNK_SIZE is wrong");
|
||||
assert(IndexSetStart != 0, "IndexSetStart not initialized");
|
||||
assert(IndexSetStride != 0, "IndexSetStride not initialized");
|
||||
|
|
|
@ -3035,7 +3035,6 @@ void CMSCollector::verify_after_remark_work_1() {
|
|||
true, // activate StrongRootsScope
|
||||
SharedHeap::ScanningOption(roots_scanning_options()),
|
||||
¬Older,
|
||||
true, // walk code active on stacks
|
||||
NULL,
|
||||
NULL); // SSS: Provide correct closure
|
||||
|
||||
|
@ -3102,7 +3101,6 @@ void CMSCollector::verify_after_remark_work_2() {
|
|||
true, // activate StrongRootsScope
|
||||
SharedHeap::ScanningOption(roots_scanning_options()),
|
||||
¬Older,
|
||||
true, // walk code active on stacks
|
||||
NULL,
|
||||
&klass_closure);
|
||||
|
||||
|
@ -3680,12 +3678,6 @@ void CMSCollector::checkpointRootsInitialWork(bool asynch) {
|
|||
ResourceMark rm;
|
||||
HandleMark hm;
|
||||
|
||||
FalseClosure falseClosure;
|
||||
// In the case of a synchronous collection, we will elide the
|
||||
// remark step, so it's important to catch all the nmethod oops
|
||||
// in this step.
|
||||
// The final 'true' flag to gen_process_strong_roots will ensure this.
|
||||
// If 'async' is true, we can relax the nmethod tracing.
|
||||
MarkRefsIntoClosure notOlder(_span, &_markBitMap);
|
||||
GenCollectedHeap* gch = GenCollectedHeap::heap();
|
||||
|
||||
|
@ -3738,7 +3730,6 @@ void CMSCollector::checkpointRootsInitialWork(bool asynch) {
|
|||
true, // activate StrongRootsScope
|
||||
SharedHeap::ScanningOption(roots_scanning_options()),
|
||||
¬Older,
|
||||
true, // walk all of code cache if (so & SO_AllCodeCache)
|
||||
NULL,
|
||||
&klass_closure);
|
||||
}
|
||||
|
@ -5237,7 +5228,6 @@ void CMSParInitialMarkTask::work(uint worker_id) {
|
|||
false, // this is parallel code
|
||||
SharedHeap::ScanningOption(_collector->CMSCollector::roots_scanning_options()),
|
||||
&par_mri_cl,
|
||||
true, // walk all of code cache if (so & SO_AllCodeCache)
|
||||
NULL,
|
||||
&klass_closure);
|
||||
assert(_collector->should_unload_classes()
|
||||
|
@ -5373,7 +5363,6 @@ void CMSParRemarkTask::work(uint worker_id) {
|
|||
false, // this is parallel code
|
||||
SharedHeap::ScanningOption(_collector->CMSCollector::roots_scanning_options()),
|
||||
&par_mrias_cl,
|
||||
true, // walk all of code cache if (so & SO_AllCodeCache)
|
||||
NULL,
|
||||
NULL); // The dirty klasses will be handled below
|
||||
assert(_collector->should_unload_classes()
|
||||
|
@ -5963,7 +5952,6 @@ void CMSCollector::do_remark_non_parallel() {
|
|||
false, // use the local StrongRootsScope
|
||||
SharedHeap::ScanningOption(roots_scanning_options()),
|
||||
&mrias_cl,
|
||||
true, // walk code active on stacks
|
||||
NULL,
|
||||
NULL); // The dirty klasses will be handled below
|
||||
|
||||
|
|
|
@ -1383,13 +1383,6 @@ class ASConcurrentMarkSweepGeneration : public ConcurrentMarkSweepGeneration {
|
|||
// Closures of various sorts used by CMS to accomplish its work
|
||||
//
|
||||
|
||||
// This closure is used to check that a certain set of oops is empty.
|
||||
class FalseClosure: public OopClosure {
|
||||
public:
|
||||
void do_oop(oop* p) { guarantee(false, "Should be an empty set"); }
|
||||
void do_oop(narrowOop* p) { guarantee(false, "Should be an empty set"); }
|
||||
};
|
||||
|
||||
// This closure is used to do concurrent marking from the roots
|
||||
// following the first checkpoint.
|
||||
class MarkFromRootsClosure: public BitMapClosure {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2014, 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
|
||||
|
@ -41,7 +41,7 @@
|
|||
nonstatic_field(LinearAllocBlock, _word_size, size_t) \
|
||||
nonstatic_field(AFLBinaryTreeDictionary, _total_size, size_t) \
|
||||
nonstatic_field(CompactibleFreeListSpace, _dictionary, AFLBinaryTreeDictionary*) \
|
||||
nonstatic_field(CompactibleFreeListSpace, _indexedFreeList[0], FreeList<FreeChunk>) \
|
||||
nonstatic_field(CompactibleFreeListSpace, _indexedFreeList[0], AdaptiveFreeList<FreeChunk>) \
|
||||
nonstatic_field(CompactibleFreeListSpace, _smallLinearAllocBlock, LinearAllocBlock)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue