Author: Armin Rigo <[email protected]>
Branch: marker
Changeset: r1185:e256c296de87
Date: 2014-04-26 19:20 +0200
http://bitbucket.org/pypy/stmgc/changeset/e256c296de87/
Log: Add the stripped down version of timelog.txt from the abandoned
timelog branch.
diff --git a/c7/doc/marker.txt b/c7/doc/marker.txt
new file mode 100644
--- /dev/null
+++ b/c7/doc/marker.txt
@@ -0,0 +1,42 @@
+
+Reports
+=======
+
+- self-abort:
+ WRITE_WRITE_CONTENTION, INEVITABLE_CONTENTION:
+ marker in both threads, time lost by this thread
+ WRITE_READ_CONTENTION:
+ marker pointing back to the write, time lost by this thread
+
+- aborted by a different thread:
+ WRITE_WRITE_CONTENTION:
+ marker in both threads, time lost by this thread
+ WRITE_READ_CONTENTION:
+ remote marker pointing back to the write, time lost by this thread
+ (no local marker available to know where we've read the object from)
+ INEVITABLE_CONTENTION:
+ n/a
+
+- self-pausing:
+ same as self-abort, but reporting the time lost by pausing
+
+- waiting for a free segment:
+ - if we're waiting because of inevitability, report with a
+ marker and the time lost
+ - if we're just waiting because of no free segment, don't report it,
+ or maybe with only the total time lost and no marker
+
+- more internal reasons for cond_wait(), like synchronizing the threads,
+ should all be resolved quickly and are unlikely worth a report
+
+
+Internal Measurements
+=====================
+
+- use clock_gettime(CLOCK_MONOTONIC), it seems to be the fastest way
+ (less than 5 times slower than a RDTSC instruction, which is itself
+ not safe in the presence of threads migrating among CPUs)
+
+- record only the highest-time entry. The user of the library is
+ responsible for getting and clearing it often enough if it wants
+ more details.
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit