harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiao-Feng Li (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-2101) [DRLVM][GC] patch for parallel compaction
Date Wed, 08 Nov 2006 07:34:52 GMT
[DRLVM][GC] patch for parallel compaction
-----------------------------------------

                 Key: HARMONY-2101
                 URL: http://issues.apache.org/jira/browse/HARMONY-2101
             Project: Harmony
          Issue Type: Improvement
          Components: DRLVM
         Environment: Windows and Linux FC4.0
            Reporter: Xiao-Feng Li


This is a patch that makes the GCv5 work in multiple collector threads. This patch has mainly
following work:

1. It makes the marking phase and installing forwarding-pointer phase parallel. The marking
phase lets multiple collectors share a task pool for load balance. The installing forwarding-pointer
phase is an improvement over SUN's parallel compator. It enables all the objects be compacted
to lower address space without a few piles of compacted objects. The remaining phase in compaction
is to move object. It's not yet put in the patch, but it's trivial since the difficulty is
in prior phases.

2. Data structures/utilities the support a prallel collection. In this patch, I put a synchronized
stack and a synchronized queue implementations. Both are non-blocking. The queue is based
on Michael and Scott's algorithm. Some other data structures like vector and pool are also
implemented. The parallel compaction heavily depends on these data structures and utilities
for both correctness and performance.

3. It also has added the code for command line options for number of collector threads and
to switch between generational/non-generational mode. -Dgc.gen_mode=true/false -Dgc.num_collectors=2

Note, with this patch, the generational mode is broken. The focus is for parallel. Hopefully
next version will have a full parallel compactor. Once the parallel compaction is done, I
will get back the generational mode since it is relatively much easier then. The default is
non-gen mode and two collector threads. 

Thanks,
xiaofeng

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message