[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