Author: Armin Rigo <[email protected]>
Branch: c7-refactor
Changeset: r844:685f6c6003e3
Date: 2014-02-24 18:09 +0100
http://bitbucket.org/pypy/stmgc/changeset/685f6c6003e3/
Log: tweaks
diff --git a/c7/stm/core.c b/c7/stm/core.c
--- a/c7/stm/core.c
+++ b/c7/stm/core.c
@@ -176,9 +176,7 @@
assert(STM_PSEGMENT->objects_pointing_to_nursery == NULL);
assert(STM_PSEGMENT->large_overflow_objects == NULL);
-#ifdef STM_TESTS
check_nursery_at_transaction_start();
-#endif
}
diff --git a/c7/stm/nursery.c b/c7/stm/nursery.c
--- a/c7/stm/nursery.c
+++ b/c7/stm/nursery.c
@@ -253,8 +253,17 @@
static void check_nursery_at_transaction_start(void)
{
+#ifndef NDEBUG
assert((uintptr_t)STM_SEGMENT->nursery_current == _stm_nursery_start);
- uintptr_t i;
- for (i = 0; i < _stm_nursery_end - _stm_nursery_start; i++)
- assert(STM_SEGMENT->nursery_current[i] == 0);
+ uintptr_t i, limit;
+# ifdef STM_TESTS
+ limit = _stm_nursery_end - _stm_nursery_start;
+# else
+ limit = 64;
+# endif
+ for (i = 0; i < limit; i += 8) {
+ assert(*(TLPREFIX uint64_t *)(STM_SEGMENT->nursery_current + i) == 0);
+ _duck();
+ }
+#endif
}
diff --git a/c7/stm/nursery.h b/c7/stm/nursery.h
--- a/c7/stm/nursery.h
+++ b/c7/stm/nursery.h
@@ -6,4 +6,4 @@
static uint32_t highest_overflow_number;
static void minor_collection(bool commit);
-static void check_nursery_at_transaction_start(void) __attribute__((unused));
+static void check_nursery_at_transaction_start(void);
diff --git a/c7/test/support.py b/c7/test/support.py
--- a/c7/test/support.py
+++ b/c7/test/support.py
@@ -32,6 +32,7 @@
typedef ... object_t;
typedef ... stm_jmpbuf_t;
#define SIZEOF_MYOBJ ...
+#define _STM_FAST_ALLOC ...
typedef struct {
object_t **shadowstack, **shadowstack_base;
diff --git a/c7/test/test_nursery.py b/c7/test/test_nursery.py
--- a/c7/test/test_nursery.py
+++ b/c7/test/test_nursery.py
@@ -98,8 +98,9 @@
assert old
assert young
- def test_larger_than_section(self):
- obj_size = NURSERY_SECTION_SIZE + 16
+ def test_larger_than_limit_for_nursery(self):
+ py.test.skip("XXX later")
+ obj_size = lib._STM_FAST_ALLOC + 16
self.start_transaction()
seen = set()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit