2010-05-28 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Fri, 28 May 2010 03:46:57 +0000 (03:46 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Fri, 28 May 2010 03:46:57 +0000 (03:46 -0000)
* sgen-gc.c: Add a note about the int[] trick to avoid some
memset.

svn path=/trunk/mono/; revision=158073

mono/metadata/ChangeLog
mono/metadata/sgen-gc.c

index aa379d2dd78bbc2096dfd82a0fe4c74477c984c6..7a4748bc68db74095f03d74226891fa37201d779 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * sgen-gc.c: Add a note about the int[] trick to avoid some
+       memset.
+
 2010-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * sgen-gc.c (sort_addresses): Use heap sort since it has better
index e6ac18787df6ad236be720282410d8926750c0a0..1691c436563372acfe47dd352e95481e9d9e59a6 100644 (file)
     assigned TLABs and if that's more than some percentage of the
     nursery size, reduce the TLAB size.
 
+ *) Explore placing unreachable objects on unused nursery memory.
+       Instead of memset'ng a region to zero, place an int[] covering it.
+       A good place to start is add_nursery_frag. The tricky thing here is
+       placing those objects atomically outside of a collection.
+
+
  */
 #include "config.h"
 #ifdef HAVE_SGEN_GC
@@ -2826,6 +2832,7 @@ add_nursery_frag (size_t frag_size, char* frag_start, char* frag_end)
                fragment_total += frag_size;
        } else {
                /* Clear unused fragments, pinning depends on this */
+               /*TODO place an int[] here instead of the memset if size justify it*/
                memset (frag_start, 0, frag_size);
        }
 }