8187091: ReturnBlobToWrongHeapTest fails because of problems in CodeHeap::contains_blob()

Reviewed-by: kvn
This commit is contained in:
Volker Simonis 2017-11-01 12:56:48 -07:00
parent ca70374a3d
commit 426e7951aa
2 changed files with 34 additions and 9 deletions

View file

@ -49,21 +49,35 @@ struct CodeBlobType {
// CodeBlob - superclass for all entries in the CodeCache.
//
// Subtypes are:
// CompiledMethod : Compiled Java methods (include method that calls to native code)
// nmethod : JIT Compiled Java methods
// RuntimeBlob : Non-compiled method code; generated glue code
// RuntimeStub : Call to VM runtime methods
// DeoptimizationBlob : Used for deoptimization
// ExceptionBlob : Used for stack unrolling
// SafepointBlob : Used to handle illegal instruction exceptions
// CompiledMethod : Compiled Java methods (include method that calls to native code)
// nmethod : JIT Compiled Java methods
// AOTCompiledMethod : AOT Compiled Java methods - Not in the CodeCache!
// AOTCompiledMethod objects are allocated in the C-Heap, the code they
// point to is allocated in the AOTCodeHeap which is in the C-Heap as
// well (i.e. it's the memory where the shared library was loaded to)
// RuntimeBlob : Non-compiled method code; generated glue code
// BufferBlob : Used for non-relocatable code such as interpreter, stubroutines, etc.
// AdapterBlob : Used to hold C2I/I2C adapters
// MethodHandlesAdapterBlob : Used to hold MethodHandles adapters
// RuntimeStub : Call to VM runtime methods
// SingletonBlob : Super-class for all blobs that exist in only one instance
// DeoptimizationBlob : Used for deoptimization
// ExceptionBlob : Used for stack unrolling
// SafepointBlob : Used to handle illegal instruction exceptions
// UncommonTrapBlob : Used to handle uncommon traps
//
//
// Layout:
// Layout (all except AOTCompiledMethod) : continuous in the CodeCache
// - header
// - relocation
// - content space
// - instruction space
// - data space
//
// Layout (AOTCompiledMethod) : in the C-Heap
// - header -\
// ... |
// - code <-/
class CodeBlobLayout;