Author: Remi Meier <[email protected]>
Branch: c8-faster-smallobj-sync
Changeset: r1929:9b46edbce4f6
Date: 2015-08-11 11:28 +0200
http://bitbucket.org/pypy/stmgc/changeset/9b46edbce4f6/

Log:    start thinking about this

diff --git a/c8/TODO b/c8/TODO
--- a/c8/TODO
+++ b/c8/TODO
@@ -1,7 +1,7 @@
 
 - fix markers (e.g. become_inevitable doesn't seem to show up)
 
-- improve sync of small objs on commit (see FLAG_SYNC_LARGE in nursery.c)
+IN_PROGRESS: improve sync of small objs on commit (see FLAG_SYNC_LARGE in 
nursery.c)
 
 - reshare pages:
   make seg0 MAP_SHARED in order to re-share private pages during major GC
diff --git a/c8/stm/smallmalloc.h b/c8/stm/smallmalloc.h
--- a/c8/stm/smallmalloc.h
+++ b/c8/stm/smallmalloc.h
@@ -49,6 +49,18 @@
 */
 struct small_malloc_data_s {
     struct small_free_loc_s *loc_free[GC_N_SMALL_REQUESTS];
+
+    /* lists the memory ranges of uncommitted/overflow objs that
+       need to be flushed to other segments on commit (like
+       large_overflow_objects) */
+    struct list_s *uncommitted_ranges;
+
+    /* List of smallobjs that were unreachable in a major GC. We
+       really free them only on commit/abort because we would
+       otherwise need to deal with holes generated in the
+       uncommitted_ranges during major GCs (and I can't think of
+       a non-quadratic algorithm to deal with this). */
+    struct list_s *delayed_free_objs;
 };
 
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to