[pypy-commit] stmgc c8-new-page-handling: minor renaming and a fix for demo_random
Raemi
noreply at buildbot.pypy.org
Mon Sep 22 13:12:51 CEST 2014
Author: Remi Meier <remi.meier at inf.ethz.ch>
Branch: c8-new-page-handling
Changeset: r1406:7d021fd1f7c1
Date: 2014-09-22 13:13 +0200
http://bitbucket.org/pypy/stmgc/changeset/7d021fd1f7c1/
Log: minor renaming and a fix for demo_random
diff --git a/c8/stm/core.c b/c8/stm/core.c
--- a/c8/stm/core.c
+++ b/c8/stm/core.c
@@ -71,11 +71,11 @@
}
-static void copy_bk_objs_from(int from_segnum, uintptr_t pagenum)
+static void copy_bk_objs_in_page_from(int from_segnum, uintptr_t pagenum)
{
/* looks at all bk copies of objects overlapping page 'pagenum' and
copies to current segment (never touch PROT_NONE memory). */
- dprintf(("copy_bk_objs_from(%d, %lu)\n", from_segnum, pagenum));
+ dprintf(("copy_bk_objs_in_page_from(%d, %lu)\n", from_segnum, pagenum));
acquire_modified_objs_lock(from_segnum);
struct tree_s *tree = get_priv_segment(from_segnum)->modified_old_objects;
@@ -96,9 +96,9 @@
release_modified_objs_lock(from_segnum);
}
-static void update_page_from_to(uintptr_t pagenum,
- struct stm_commit_log_entry_s *from,
- struct stm_commit_log_entry_s *to)
+static void update_page_revision_from_to(uintptr_t pagenum,
+ struct stm_commit_log_entry_s *from,
+ struct stm_commit_log_entry_s *to)
{
/* walk the commit log and update the page 'pagenum' until we reach
the same revision as our segment, or we reach the HEAD. */
@@ -130,12 +130,12 @@
}
}
-static void bring_page_up_to_date(uintptr_t pagenum)
+static void handle_segfault_in_page(uintptr_t pagenum)
{
/* assumes page 'pagenum' is ACCESS_NONE, privatizes it,
and validates to newest revision */
- dprintf(("bring_page_up_to_date(%lu), seg %d\n", pagenum, STM_SEGMENT->segment_num));
+ dprintf(("handle_segfault_in_page(%lu), seg %d\n", pagenum, STM_SEGMENT->segment_num));
/* XXX: bad, but no deadlocks: */
acquire_all_privatization_locks();
@@ -168,10 +168,10 @@
assert(get_page_status_in(my_segnum, pagenum) == PAGE_PRIVATE);
/* if there were modifications in the page, revert them: */
- copy_bk_objs_from(shared_page_holder, pagenum);
+ copy_bk_objs_in_page_from(shared_page_holder, pagenum);
/* if not already newer, update page to our revision */
- update_page_from_to(
+ update_page_revision_from_to(
pagenum, get_priv_segment(shared_page_holder)->last_commit_log_entry,
STM_PSEGMENT->last_commit_log_entry);
@@ -198,7 +198,7 @@
char *seg_base = STM_SEGMENT->segment_base;
uintptr_t pagenum = ((char*)addr - seg_base) / 4096UL;
- bring_page_up_to_date(pagenum);
+ handle_segfault_in_page(pagenum);
return;
}
diff --git a/c8/stmgc.h b/c8/stmgc.h
--- a/c8/stmgc.h
+++ b/c8/stmgc.h
@@ -71,7 +71,6 @@
char *_stm_real_address(object_t *o);
#ifdef STM_TESTS
#include <stdbool.h>
-void stm_validate(void);
bool _stm_was_read(object_t *obj);
bool _stm_was_written(object_t *obj);
@@ -226,6 +225,7 @@
}
void stm_become_globally_unique_transaction(stm_thread_local_t *tl, const char *msg);
+void stm_validate(void);
/* ==================== END ==================== */
More information about the pypy-commit
mailing list