You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(13) |
2
(15) |
|
3
(16) |
4
(42) |
5
(9) |
6
(20) |
7
(22) |
8
(24) |
9
(12) |
|
10
(24) |
11
(11) |
12
(2) |
13
(13) |
14
(8) |
15
|
16
(16) |
|
17
(24) |
18
(36) |
19
(100) |
20
(94) |
21
(50) |
22
(39) |
23
(10) |
|
24
(14) |
25
(19) |
26
(2) |
27
(6) |
28
(17) |
29
(9) |
30
(8) |
|
31
(21) |
|
|
|
|
|
|
|
From: <sv...@va...> - 2009-05-26 19:06:21
|
Author: bart
Date: 2009-05-26 20:05:11 +0100 (Tue, 26 May 2009)
New Revision: 10153
Log:
- Renamed into DRD_(thread_update_cs_after_sync)() into
DRD_(thread_update_conflict_set)().
- Optimized DRD_(thread_new_segment)().
Modified:
branches/DRDDEV/drd/drd_barrier.c
branches/DRDDEV/drd/drd_rwlock.c
branches/DRDDEV/drd/drd_thread.c
branches/DRDDEV/drd/drd_thread.h
Modified: branches/DRDDEV/drd/drd_barrier.c
===================================================================
--- branches/DRDDEV/drd/drd_barrier.c 2009-05-25 01:58:02 UTC (rev 10152)
+++ branches/DRDDEV/drd/drd_barrier.c 2009-05-26 19:05:11 UTC (rev 10153)
@@ -480,7 +480,7 @@
&r->sg[p->post_iteration]->vc);
}
}
- DRD_(thread_update_cs_after_sync)(tid, &old_vc);
+ DRD_(thread_update_conflict_set)(tid, &old_vc);
DRD_(vc_cleanup)(&old_vc);
}
Modified: branches/DRDDEV/drd/drd_rwlock.c
===================================================================
--- branches/DRDDEV/drd/drd_rwlock.c 2009-05-25 01:58:02 UTC (rev 10152)
+++ branches/DRDDEV/drd/drd_rwlock.c 2009-05-26 19:05:11 UTC (rev 10153)
@@ -180,7 +180,7 @@
&q->last_unlock_segment->vc);
}
}
- DRD_(thread_update_cs_after_sync)(tid, &old_vc);
+ DRD_(thread_update_conflict_set)(tid, &old_vc);
DRD_(vc_cleanup)(&old_vc);
}
Modified: branches/DRDDEV/drd/drd_thread.c
===================================================================
--- branches/DRDDEV/drd/drd_thread.c 2009-05-25 01:58:02 UTC (rev 10152)
+++ branches/DRDDEV/drd/drd_thread.c 2009-05-26 19:05:11 UTC (rev 10153)
@@ -954,17 +954,13 @@
new_sg = DRD_(sg_new)(tid, tid);
thread_append_segment(tid, new_sg);
- if (new_sg->prev == NULL
- || conflict_set_update_needed(tid, &new_sg->prev->vc, &new_sg->vc))
- {
- thread_compute_conflict_set(&DRD_(g_conflict_set),
- DRD_(g_drd_running_tid));
- s_conflict_set_new_segment_count++;
- }
- else if (tid == DRD_(g_drd_running_tid))
- {
- tl_assert(thread_conflict_set_up_to_date(DRD_(g_drd_running_tid)));
- }
+ /*
+ * Note: after creation of a new segment and before the conflict set has
+ * been updated the conflict set can be temporarily out of sync. The
+ * following assert statement would fail when enabled:
+ *
+ * tl_assert(thread_conflict_set_up_to_date(DRD_(g_drd_running_tid)));
+ */
thread_discard_ordered_segments();
@@ -1017,7 +1013,8 @@
DRD_(vc_copy)(&old_vc, &DRD_(g_threadinfo)[tid].last->vc);
DRD_(vc_combine)(&DRD_(g_threadinfo)[tid].last->vc, vc);
- DRD_(thread_update_cs_after_sync)(tid, &old_vc);
+ thread_discard_ordered_segments();
+ DRD_(thread_update_conflict_set)(tid, &old_vc);
DRD_(vc_cleanup)(&old_vc);
}
else
@@ -1027,26 +1024,6 @@
}
/**
- * Update the conflict set after the vector clock of thread tid has been updated
- * from old_vc to DRD_(g_threadinfo)[tid].last->vc.
- */
-void DRD_(thread_update_cs_after_sync)(DrdThreadId tid, VectorClock* old_vc)
-{
- tl_assert(0 <= (int)tid && tid < DRD_N_THREADS
- && tid != DRD_INVALID_THREADID);
- tl_assert(old_vc);
-
- thread_discard_ordered_segments();
-
- if (conflict_set_update_needed(tid, old_vc,
- &DRD_(g_threadinfo)[tid].last->vc))
- {
- thread_compute_conflict_set(&DRD_(g_conflict_set), tid);
- s_conflict_set_combine_vc_count++;
- }
-}
-
-/**
* Call this function whenever a thread is no longer using the memory
* [ a1, a2 [, e.g. because of a call to free() or a stack pointer
* increase.
@@ -1266,8 +1243,9 @@
}
/**
- * Compute a bitmap that represents the union of all memory accesses of all
- * segments that are unordered to the current segment of the thread tid.
+ * Compute the conflict set: a bitmap that represents the union of all memory
+ * accesses of all segments that are unordered to the current segment of the
+ * thread tid.
*/
static void thread_compute_conflict_set(struct bitmap** conflict_set,
const DrdThreadId tid)
@@ -1375,6 +1353,32 @@
}
}
+/**
+ * Update the conflict set after the vector clock of thread tid has been
+ * updated from old_vc to its current value, either because a new segment has
+ * been created or because of a synchronization operation.
+ */
+void DRD_(thread_update_conflict_set)(const DrdThreadId tid,
+ const VectorClock* const old_vc)
+{
+ const VectorClock* new_vc;
+
+ tl_assert(0 <= (int)tid && tid < DRD_N_THREADS
+ && tid != DRD_INVALID_THREADID);
+ tl_assert(old_vc);
+
+
+ new_vc = &DRD_(g_threadinfo)[tid].last->vc;
+
+ if (conflict_set_update_needed(tid, old_vc, new_vc))
+ {
+ thread_compute_conflict_set(&DRD_(g_conflict_set), tid);
+ s_conflict_set_combine_vc_count++;
+ }
+
+ tl_assert(thread_conflict_set_up_to_date(DRD_(g_drd_running_tid)));
+}
+
/** Report the number of context switches performed. */
ULong DRD_(thread_get_context_switch_count)(void)
{
Modified: branches/DRDDEV/drd/drd_thread.h
===================================================================
--- branches/DRDDEV/drd/drd_thread.h 2009-05-25 01:58:02 UTC (rev 10152)
+++ branches/DRDDEV/drd/drd_thread.h 2009-05-26 19:05:11 UTC (rev 10153)
@@ -151,7 +151,8 @@
void DRD_(thread_combine_vc_join)(const DrdThreadId joiner,
const DrdThreadId joinee);
void DRD_(thread_combine_vc_sync)(const DrdThreadId tid, const Segment* sg);
-void DRD_(thread_update_cs_after_sync)(DrdThreadId tid, VectorClock* old_vc);
+void DRD_(thread_update_conflict_set)(const DrdThreadId tid,
+ const VectorClock* const old_vc);
void DRD_(thread_stop_using_mem)(const Addr a1, const Addr a2);
void DRD_(thread_start_recording)(const DrdThreadId tid);
|
|
From: Nicholas N. <n.n...@gm...> - 2009-05-26 00:59:50
|
Hi, I think the DARWIN branch is in a good enough state that it's ready to be merged with the trunk. Excluding Helgrind, DRD and Ptrcheck, I get only 11 regtest failures on my MacBook Pro, which is better than the result for some Linux systems. (I haven't made much of an effort to get Helgrind, DRD and Ptrcheck working on Darwin yet because they are the least-used tools. That's future work.) The Darwin-specific code still requires some cleaning up -- look for comments containing "DDD" and/or "GrP" if you want an idea -- but it's in a good enough state that maintaining a separate branch for it is no longer worth the effort. I've recently done a lot of commits to synchronise the branch with the trunk. The net result is that the branch/trunk diff now contains mostly new, Darwin-specific code; there's only a small amount of trunk code that is modified. The 31,102 line diff is available at www.valgrind.org/njn/trunk-DARWIN-r10152.diff.bz2, it's from r10152. I propose doing the merge in two day's time, ie. some time Thursday (Melbourne time). If interested people could look over the diff, that would be helpful. It would also be very helpful if we could avoid making commits to the trunk or the DARWIN branch in the meantime. Any comments? Nick |