[pypy-commit] stmgc default: some private, shared, logical page, virtual page, file page, explanation

Raemi noreply at buildbot.pypy.org
Thu Sep 4 17:42:04 CEST 2014


Author: Remi Meier <remi.meier at inf.ethz.ch>
Branch: 
Changeset: r1353:7d666a0a78f2
Date: 2014-09-04 17:43 +0200
http://bitbucket.org/pypy/stmgc/changeset/7d666a0a78f2/

Log:	some private, shared, logical page, virtual page, file page,
	explanation

diff --git a/c8/stm/pages.h b/c8/stm/pages.h
--- a/c8/stm/pages.h
+++ b/c8/stm/pages.h
@@ -1,3 +1,22 @@
+/*
+  We have logical pages: one %gs relative pointer can point in some
+      logical page
+  We have virtual pages: one virtual address can point in some
+      virtual page. We have NB_SEGMENTS virtual pages per logical page.
+  We have file pages: they correspond mostly to physical memory pages
+      used for mmap/remap_file_pages
+
+  A logical page is SHARED iff all NB_SEGMENTS virtual pages point to
+  one file page, and thus to the same logical page.
+
+  A logical page becomes PRIVATE if one virtual page still maps to the
+  original file page, and all others turn read protected.
+   -> only one can modify it.
+
+  A logical page can also be "PRIVATE IN A SEGMENT", referring to
+  the virtual page of the segment having its own file page backing.
+  It also implies the logical page is not read protected.
+*/
 
 #define PAGE_FLAG_START   END_NURSERY_PAGE
 #define PAGE_FLAG_END     NB_PAGES


More information about the pypy-commit mailing list