Author: Armin Rigo <[email protected]>
Branch:
Changeset: r1142:9b285d8d47b0
Date: 2014-04-08 20:30 +0200
http://bitbucket.org/pypy/stmgc/changeset/9b285d8d47b0/
Log: Add extra asserts to check that we're not remapping random unrelated
pages
diff --git a/c7/stm/pages.c b/c7/stm/pages.c
--- a/c7/stm/pages.c
+++ b/c7/stm/pages.c
@@ -95,6 +95,17 @@
(void *)((addr - stm_object_pages) % (4096UL * NB_PAGES)),
(long)pgoff / NB_PAGES,
(void *)((pgoff % NB_PAGES) * 4096UL)));
+ assert(size % 4096 == 0);
+ assert(size <= TOTAL_MEMORY);
+ assert(((uintptr_t)addr) % 4096 == 0);
+ assert(addr >= stm_object_pages);
+ assert(addr <= stm_object_pages + TOTAL_MEMORY - size);
+ assert(pgoff >= 0);
+ assert(pgoff <= (TOTAL_MEMORY - size) / 4096UL);
+
+ /* assert remappings follow the rule that page N in one segment
+ can only be remapped to page N in another segment */
+ assert(((addr - stm_object_pages) / 4096UL - pgoff) % NB_PAGES == 0);
int res = remap_file_pages(addr, size, 0, pgoff, 0);
if (UNLIKELY(res < 0))
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit