[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-hotspot-gc-dev
Subject: custom compacting GC implementation
From: psockali () gmail ! com (Pressenna Sockalingasamy)
Date: 2010-09-28 22:50:52
Message-ID: 4CA2714C.3090403 () gmail ! com
[Download RAW message or body]
Hi,
I'm trying to implement a (so far) simple heap, which stops the world and compacts \
spaces. It is all working, but as soon as I compact spaces and get new oop addresses \
to be used, the JVM SIGSEGVs. For some reasons, the backtrace (via DDD) shows me that \
the VM is executing code in the heap address space. Is there something special I have \
to do / consider when adjusting pointers during a safepoint? Currently I am just \
using the same approach as the SharedHeap::process_strong_roots(...). My code base is \
the b20 source drop.
Current code is as follows:
rmsAdjustClosure rac(_adjustmentMap);
Universe::oops_do(&rac);
ReferenceProcessor::oops_do(&rac);
JNIHandles::oops_do(&rac);
Threads::oops_do(&rac, NULL);
ObjectSynchronizer::oops_do(&rac);
FlatProfiler::oops_do(&rac);
Management::oops_do(&rac);
JvmtiExport::oops_do(&rac);
SystemDictionary::oops_do(&rac);
vmSymbols::oops_do(&rac);
JNIHandles::oops_do(&rac);
CodeCache::oops_do(&rac);
SymbolTable::oops_do(&rac);
StringTable::oops_do(&rac);
// adjust pointers in the permanent space / generation
_heap->permanent_oop_iterate(&rac);
Regards,
Pressenna Sockalingasamy
PS: sorry for the double post... forgot the sample code
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic