You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Xiao-Feng Li (JIRA)" <ji...@apache.org> on 2006/09/11 17:20:22 UTC

[jira] Created: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

[DRLVM] first batch of files for GCv5, a trace-forward copying collector
------------------------------------------------------------------------

                 Key: HARMONY-1428
                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
             Project: Harmony
          Issue Type: Improvement
          Components: DRLVM
         Environment: These files were only tested on Windows with VS.NET 2003.  
            Reporter: Xiao-Feng Li


This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.

The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 

In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.

GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:
----------------------------------

    Attachment: patch-for-GCv5_r0.10.txt

A last minute fix to the GCv5_r0.10.zip. Please unzip GCv5_r0.10.zip,  enter its src directory to apply the patch.  It's a very minor change that you can apply manually by editting the file under src/common/gc_for_vm.cpp line 30 as below to change (GC) to (GC_Gen).
==============================================================
diff -burN common/gc_for_vm.cpp ../vm/gc/src/common/gc_for_vm.cpp
--- common/gc_for_vm.cpp        2006-10-05 22:08:57.480692800 +0800
+++ ../vm/gc/src/common/gc_for_vm.cpp   2006-10-06 22:22:07.262553600 +0800
@@ -27,7 +27,7 @@
 void gc_init()
 {
   assert(p_global_gc == NULL);
-  GC* gc = (GC*)STD_MALLOC(sizeof(GC));
+  GC* gc = (GC*)STD_MALLOC(sizeof(GC_Gen));
   assert(gc);
   memset(gc, 0, sizeof(GC));
   p_global_gc = gc;

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip, patch-for-GCv5_r0.10.txt
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Commented: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "weldon washburn (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/HARMONY-1428?page=comments#action_12434143 ] 
            
weldon washburn commented on HARMONY-1428:
------------------------------------------

It would be nice to add the revision numbers you are working with to these comments.  In specific the svn revision numbers of both classlib and also drlvm.

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc_v5.001.zip
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Closed: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "weldon washburn (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

weldon washburn closed HARMONY-1428.
------------------------------------

    Resolution: Fixed

Committed.
It was tested on both windowsXP and linux w/ gcc 3.4.5


> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_gen.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip, gcv5_and_patch.zip, patch-for-GCv5_r0.10.txt, patch_for_multi_gc.txt, patch_gcv5_for_SVN454061.txt
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Commented: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "weldon washburn (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/HARMONY-1428?page=comments#action_12440788 ] 
            
weldon washburn commented on HARMONY-1428:
------------------------------------------

I had to hack on gc.xml to get it to build.  It looks like the gc.xml attached to this JIRA (1428) forgot to put hythr.lib in the link.  Below is the diff from my gc.xml and the one supplied in this JIRA:

30c30
<         <property name="build.depends" value="extra.apr,vm.vmcore" />
---
>         <property name="build.depends" value="extra.apr,vm.vmcore,vm.hythr" />

96a97
>             <libset libs="${vm.hythr.lib}"  dir="${vm.hythr.libdir}"  />


The above allows drlvm to be built with GCV5.  But so far, I have not been able to get any of the smoke tests to run.

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip, patch-for-GCv5_r0.10.txt, patch_for_multi_gc.txt, patch_gcv5_for_SVN454061.txt
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:
----------------------------------

    Attachment: patch_for_multi_gc.txt

The submitted file patch_for_multi_gc.txt is a patch that enables DRLVM to support multiple GCs' build. 

To apply the patch, step 1 is to enter the top level of drlvm, type
    patch -p0 < patch_for_multi_gc.txt

Step 2, the original directory of gc (gcv4.1) should be renamed to be gc_cc, and gcv5 be under directory of gc_gen.

Then it's done. A user can build and run as before without noticing anything changed (gcv4.1 is still the default GC), but he can run gcv5 with option in command line:
   -Dvm.dlls=gc_gen.dll

Hopefull we will later submit another patch to use name gcv5.dll instead of gc_gen.dll, but at the moment it is ok.

Thanks,
xiaofeng
   

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip, patch-for-GCv5_r0.10.txt, patch_for_multi_gc.txt, patch_gcv5_for_SVN454061.txt
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Commented: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "weldon washburn (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/HARMONY-1428?page=comments#action_12440641 ] 
            
weldon washburn commented on HARMONY-1428:
------------------------------------------

Build problems when using the current svn HEAD:

1)
the APR header include path does not match up properly.  I put an echo statement in gc.xml:

        <echo> Using location=${extra.apr.includes}</echo>

and got:

         [echo]  Using location=C:\t_harmony\drlvm\trunk\build\win_ia32_msvc_debug\semis\extra\apr\include\apr-1

I fixed it by changing gc_platform.h:

///////////////// wjw #include <apr-1/apr_time.h>
///////////////// wjw #include <apr-1/apr_atomic.h>
#include <apr_time.h>
#include <apr_atomic.h>

2) 
there seems to be a problem with the threading headers ???  I get the following error messages:


build.native.cpp:
       [cc] 18 total files to be compiled.
       [cc] cl : Command line warning D4025 : overriding '/Ox' with '/Od'
       [cc] verify_live_heap.cpp
       [cc] fspace_alloc.cpp
       [cc] c:\t_harmony\drlvm\trunk\vm\gc\src\trace_forward\../thread\thread_al
loc.h(32) : error C2146: syntax error : missing ';' before identifier 'thread_ha
ndle'
       [cc] c:\t_harmony\drlvm\trunk\vm\gc\src\trace_forward\../thread\thread_al
loc.h(32) : error C2501: 'Alloc_Context::VmThreadHandle' : missing storage-class
 or type specifiers
       [cc] c:\t_harmony\drlvm\trunk\vm\gc\src\trace_forward\../thread\thread_al
loc.h(32) : error C2501: 'Alloc_Context::thread_handle' : missing storage-class
or type specifiers
       [cc] mspace.cpp
       [cc] c:\t_harmony\drlvm\trunk\vm\gc\src\mark_compact\../thread\thread_all
oc.h(32) : error C2146: syntax error : missing ';' before identifier 'thread_han
dle'

--------------------->   and another approximately 50 or 60 compiler error messages 




> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip, patch-for-GCv5_r0.10.txt
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:
----------------------------------

    Attachment: GCv5-mc001.zip

The attachment is a mark-compaction GC implementation for DRLVM, and is supposed to be the mature space collector of GCv5. 

Currently it is a standalone mark-compaction GC that can run SPECJBB2000 and SPECJVM98 on MS Windows with VS.NET 2003.  

It arranges the heap space into two parts: mark-compaction space (Mspace) and large-object space (LOS), and they are managed by different algorithms.  The Mspace GC is the major part of this submission, whereas the LOS part is only a skeleton that will be stuffed later.

The code is written from the scratch and is very easy to understand (well, in my personal opinion). Next is to connect it with the last submission (a Trace-forwarding GC targeted at the nursery space collector) into a full generational GC.

During the development of the Trace-forwarding and the Mark-compaction GCs, I intentionally arranged the code base into flexible enough so that they can be connected into one and they can run seperately as standalone GC. The gc.xml make file needs to be modified to reflect the directory difference than existing GC.

Any comments, suggestions, and code contributions are welcome!

Thanks, 
xiaofeng



> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc_v5.001.zip, GCv5-mc001.zip
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:
----------------------------------

    Attachment: patch_gcv5_for_SVN454061.txt

Attached file patch_gcv5_for_SVN454061.txt is to make the submitted zip file gcv5_r0.10.zip buildable with today's (2006-10-8) SVN head revision 454061. 

Please go to unzip gcv5_r0.10.zip into a clean directory, then apply the patch directly with 
        patch -p1 <patch_gcv5_for_SVN454061.txt

The patch content are basically some header declarations. I built it without problem with today's SVN (plus the submitted gc.xml), but I can't test it yet because the SVN head revision has no write barrier support. 

Thanks,
xiaofeng

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip, patch-for-GCv5_r0.10.txt, patch_gcv5_for_SVN454061.txt
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:
----------------------------------

    Attachment: gcv5-r0.10.zip

Attached file gcv5-r0.10.zip is first version of the generational mark-compaction GC for GCv5, which combines previous two submitted collectors as planned. That is, a trace-forward collector for minor collection and a mark-compaction collector for major collection. An additon of a copying algorithm is also developed that copies nursery live objects to mature space during a major collection. 

This revision has subtantial improvement in threading part. Although it's still single threaded collector, the framework for multithreading is ready. Basically, it has mutators and collectors to model the application threads and collection threads. 

A major design concept in this revision that was not made very clear in previous submissions is "space".  "GC" is a concept of a full (or standalone) garbage collector design. One GC can have multiple spaces, each of which can employ different "collection policy". With this design idea in mind, the previous trace-forward GC is adapted to be the collection policy for the nursery space, and the mark-compaction GC is adapted to be the collection policy of the mature space. 

As an embodiment of the design idea, GCv5 eliminates the global gc variable in existing Harmony GC, and different space managements only need to know a general gc data structure, instead of the generational gc structure.

This revision has been tested on Windows with SPECJVM98. As the first actual generational GC, any comments are welcome!

-xiaofeng

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:
----------------------------------

    Attachment: gc_gen.xml

build file for GCv5 to avoid Linux build since that's not supported yet.

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_gen.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip, gcv5_and_patch.zip, patch-for-GCv5_r0.10.txt, patch_for_multi_gc.txt, patch_gcv5_for_SVN454061.txt
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Commented: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/HARMONY-1428?page=comments#action_12440790 ] 
            
Xiao-Feng Li commented on HARMONY-1428:
---------------------------------------

Weldon, to run GCv5 we need write barrier support. Have you merged any write barrier implementation? Thanks, -xiaofeng

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip, patch-for-GCv5_r0.10.txt, patch_for_multi_gc.txt, patch_gcv5_for_SVN454061.txt
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Assigned: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "weldon washburn (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

weldon washburn reassigned HARMONY-1428:
----------------------------------------

    Assignee: weldon washburn

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc_v5.001.zip
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:
----------------------------------

    Attachment: gc_v5.001.zip

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Attachments: gc_v5.001.zip
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:
----------------------------------

    Attachment: gc.xml

gc.xml for GCv5_r0.10.zip submission. 

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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

        

[jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector

Posted by "Xiao-Feng Li (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:
----------------------------------

    Attachment: gcv5_and_patch.zip

put all files together for GCv5 integration. -xiaofeng

> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc.xml, gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip, gcv5_and_patch.zip, patch-for-GCv5_r0.10.txt, patch_for_multi_gc.txt, patch_gcv5_for_SVN454061.txt
>
>
> This archive has a couple of files implementing an early version of a trace-forward copying collector for GCv5. It's only a starter with very basic functionalities. It is a generational GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000 and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space (It can forward part of the From-space). The To-space has no real management except for the accomodation of forwarded objects and large objects. So the To-space is going to be replaced by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply with the original contract between GCv4 and other components. I also borrowed some routine code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted code base. I will submit new codes from time to time when they are worth a submission. Any comments or codes are more than welcome. 

-- 
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