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
(33) |
2
(15) |
3
(20) |
4
(22) |
5
(13) |
|
6
(12) |
7
(32) |
8
(17) |
9
(31) |
10
(21) |
11
(7) |
12
(13) |
|
13
(13) |
14
(12) |
15
(10) |
16
(8) |
17
(7) |
18
(28) |
19
(5) |
|
20
(5) |
21
(7) |
22
(11) |
23
(7) |
24
(13) |
25
(7) |
26
(7) |
|
27
(7) |
28
(15) |
29
(30) |
30
(21) |
31
(6) |
|
|
|
From: <sv...@va...> - 2008-07-12 17:59:02
|
Author: bart
Date: 2008-07-12 18:59:09 +0100 (Sat, 12 Jul 2008)
New Revision: 8426
Log:
Raytrace benchmark now runs as it should.
Modified:
trunk/drd/scripts/run-splash2
Modified: trunk/drd/scripts/run-splash2
===================================================================
--- trunk/drd/scripts/run-splash2 2008-07-12 17:57:36 UTC (rev 8425)
+++ trunk/drd/scripts/run-splash2 2008-07-12 17:59:09 UTC (rev 8426)
@@ -227,7 +227,7 @@
gzip -cd <$f >${f%.Z}
done
cd ..
- test_args=inputs/car.env psep=' ' run_test ./RAYTRACE
+ test_args=inputs/car.env psep='' run_test ./RAYTRACE -m64
)
# Water-n2
|
|
From: <sv...@va...> - 2008-07-12 17:57:29
|
Author: bart
Date: 2008-07-12 18:57:36 +0100 (Sat, 12 Jul 2008)
New Revision: 8425
Log:
Made raytrace benchmark work. Reran benchmark.
Modified:
branches/DRDDEV/drd/scripts/run-splash2
Modified: branches/DRDDEV/drd/scripts/run-splash2
===================================================================
--- branches/DRDDEV/drd/scripts/run-splash2 2008-07-12 16:40:43 UTC (rev 8424)
+++ branches/DRDDEV/drd/scripts/run-splash2 2008-07-12 17:57:36 UTC (rev 8425)
@@ -116,51 +116,25 @@
# 20. Execution time ratio for Intel Thread Checker -p4 versus -p4.
# 21. Execution time ratio for Intel Thread Checker -p4 versus -p4.
#
-# Note: Helgrind uses a granularity of four bytes for data race detection, and DRD a granularity of one byte.
+# Notes:
+# - Both Helgrind and DRD use a granularity of four bytes for data race
+# detection.
+# - Helgrind with --pure-happens-before=yes does not handle atomic variables
+# correctly. This causes real data races to be suppressed.
#
-# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
####################################################################################################################################
# Results: native native native none none DRD DRD HG HG-hb ITC ITC
-# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4 -p4+f
-# ..................................................................................................................................
-# Cholesky 0.37 45867 0.25 55965 0.20 74944 8.8 2.08 28.9 1.66 171 1.96 114 2.85 54 3.13 ... .... 239 82
-# FFT 0.20 23976 0.13 54026 0.09 114112 8.2 3.02 18.4 0.85 130 1.20 85 1.27 416 1.65 ... .... 90 41
-# LU, contiguous 0.95 16784 0.64 24984 0.43 41392 8.0 3.88 19.3 2.17 120 2.84 113 3.04 223 4.36 ... .... 428 128
-# Ocean, contiguous 24.25 918016 14.57 927732 9.09 945664 2.4 1.05 6.6 1.05 89 1.92 77 1.93 149 1.88 ... .... 90 28
-# Radix 4.98 279744 2.55 287936 1.36 304448 6.1 1.17 22.4 1.16 57 1.90 52 1.92 208 2.09 ... .... 222 56
-# Raytrace 2.76 320526 1.44 328448 0.77 344832 8.3 1.15 28.6 1.14 2324 1.31 326 1.34 420 0.60 ... .... 172 53
-# Water-n2 0.19 17304 0.12 33680 0.12 66432 12.0 3.85 20.2 3.53 2789 2.78 562 2.84 121 3.32 ... .... 189 39
-# Water-sp 0.21 10976 0.11 19176 0.07 35568 11.0 5.41 33.3 2.37 475 2.85 147 3.08 196 4.61 ... .... 183 34
-# ..................................................................................................................................
-# Hardware: Two quad-core Intel Xeon L5130, 1.6 GHz, 4 MB L2 cache, 16 GB RAM.
-# Software: Ubuntu 8.04 server, 64-bit, gcc 4.3.1.
-####################################################################################################################################
-# Results: native native native none none DRD DRD HG HG-hb ITC ITC
-# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4 -p4+f
-# ..................................................................................................................................
-# Cholesky 0.29 45835 0.21 55933 4.51 74944 8.8 2.21 1.0 1.75 6 2.05 4 2.16 2 3.22 ... .... 239 82
-# FFT 0.17 23949 0.12 32144 0.11 48536 7.8 3.28 12.0 2.13 85 2.96 56 3.13 282 4.02 ... .... 90 41
-# LU, contiguous 0.78 16752 0.53 24957 0.53 41365 7.9 4.27 11.7 2.33 78 3.00 74 3.20 146 4.51 ... .... 428 128
-# Ocean, contiguous 19.47 918016 12.59 927232 12.61 945664 2.4 1.06 3.8 1.06 53 1.92 47 1.93 86 1.88 ... .... 90 28
-# Radix 4.05 279680 2.12 287872 2.14 304405 6.0 1.20 11.4 1.18 29 1.92 27 1.94 157 2.12 ... .... 222 56
-# Raytrace 2.22 320192 .... ..... 2.20 ...... 7.4 1.17 ... .... ... .... .. .... .. .... ... .... 172 53
-# Water-n2 0.15 17272 0.10 33651 0.11 66432 12.3 4.22 17.5 1.84 2320 2.90 583 2.92 105 3.41 ... .... 189 39
-# Water-sp 0.16 10947 0.09 19144 0.09 35536 11.4 6.00 20.7 2.55 251 3.03 91 3.26 123 4.79 ... .... 183 34
-# ..................................................................................................................................
-# Hardware: dual-core Intel Xeon 5130, 2.0 GHz, 4 MB L2 cache, 4 GB RAM.
-# Software: Ubuntu 7.10 server, 64-bit, gcc 4.3.1, xload -update 1 running.
-####################################################################################################################################
-# Results: native native native none none DRD DRD HG HG-hb ITC ITC
# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4 -p4+f
# ..................................................................................................................................
-# Cholesky 0.08 21760 0.05 31728 0.56 50148 13.6 3.62 3.8 2.14 16 2.51 14 2.68 9 4.03 15 5.01 239 82
-# FFT 0.02 13024 0.02 64931 0.01 81317 17.5 5.37 36.0 1.16 248 1.35 219 1.45 704 2.19 182 2.50 90 41
-# LU, contiguous 0.08 10440 0.06 18640 0.06 35048 9.9 6.45 13.0 2.63 81 2.89 88 3.13 156 4.92 125 5.63 428 128
-# Ocean, contiguous 0.19 23208 0.18 31744 0.13 48888 4.8 3.45 7.6 2.17 59 2.58 50 2.75 77 4.01 72 4.96 90 28
-# Radix 0.17 33760 0.10 41952 0.10 58488 7.2 2.68 14.0 1.98 28 2.52 41 2.66 159 3.70 34 4.12 222 56
-# Raytrace 0.21 320064 0.21 320064 0.21 320064 13.3 1.18 13.2 1.18 169 1.25 58 1.25 105 2.10 71 2.96 172 53
-# Water-n2 0.11 17104 0.07 33480 0.08 66240 12.4 4.38 17.5 1.88 1877 2.93 525 2.97 106 3.47 105 4.15 189 39
-# Water-sp 0.12 10784 0.06 84352 0.06 100835 11.0 6.27 22.7 0.92 257 1.09 91 1.17 129 1.72 139 1.97 183 34
+# Cholesky 0.08 21760 0.05 31728 0.45 72027 10.8 3.62 5.6 1.49 18 1.64 15 1.69 10 2.76 19 3.49 239 82
+# FFT 0.02 13024 0.01 64931 0.01 81317 17.5 5.37 37.0 1.16 176 1.25 185 1.30 705 2.19 186 2.50 90 41
+# LU, contiguous 0.08 10440 0.06 18640 0.05 35048 10.1 6.45 15.6 2.63 79 2.78 86 2.90 188 4.83 149 5.63 428 128
+# Ocean, contiguous 0.20 23208 0.13 31744 0.13 48888 4.5 3.45 7.7 2.17 47 2.33 43 2.41 78 3.94 72 4.96 90 28
+# Radix 0.17 33760 0.10 41952 0.10 58488 7.3 2.68 12.7 1.98 23 2.17 32 2.24 150 3.64 31 4.12 222 56
+# Raytrace 0.49 352832 0.38 361024 0.39 399253 9.1 1.16 11.6 1.09 205 1.33 91 1.33 104 1.94 89 3.98 172 53
+# Water-n2 0.12 17104 0.07 33480 0.08 66240 11.3 4.38 18.0 1.88 1563 2.46 292 2.44 108 3.42 106 4.15 189 39
+# Water-sp 0.12 10784 0.06 62560 0.06 122645 11.1 6.28 23.0 0.75 212 0.83 80 0.83 129 1.39 139 1.62 183 34
+# geometric mean 0.12 24965 0.07 49937 0.09 81274 9.6 3.72 14.1 1.53 108 1.72 72 1.76 111 2.81 79 3.58 180 51
# ..................................................................................................................................
# Hardware: dual-core Intel Core2 Duo E6750, 2.66 GHz, 4 MB L2 cache, 2 GB RAM.
# Software: openSUSE 11.0, 64-bit, gcc 4.3.1, runlevel 3.
@@ -227,7 +201,7 @@
gzip -cd <$f >${f%.Z}
done
cd ..
- test_args=inputs/car.env psep=' ' run_test ./RAYTRACE
+ test_args=inputs/car.env psep='' run_test ./RAYTRACE -m64
)
# Water-n2
|
|
From: <sv...@va...> - 2008-07-12 16:40:38
|
Author: bart
Date: 2008-07-12 17:40:43 +0100 (Sat, 12 Jul 2008)
New Revision: 8424
Log:
Merged trunk revisions 8401:8423 to DRDDEV branch.
Modified:
branches/DRDDEV/coregrind/m_syswrap/syswrap-amd64-linux.c
branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc32-linux.c
branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc64-linux.c
branches/DRDDEV/drd/Makefile.am
branches/DRDDEV/drd/Testing.txt
branches/DRDDEV/drd/docs/drd-manual.xml
branches/DRDDEV/drd/drd_error.c
branches/DRDDEV/drd/scripts/measurement-functions
branches/DRDDEV/drd/scripts/run-splash2
branches/DRDDEV/drd/scripts/run-splash2-water-input
branches/DRDDEV/drd/tests/Makefile.am
branches/DRDDEV/drd/tests/pth_cond_race3.stderr.exp
branches/DRDDEV/drd/tests/pth_cond_race3.vgtest
branches/DRDDEV/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8
branches/DRDDEV/glibc-2.X-drd.supp
Modified: branches/DRDDEV/coregrind/m_syswrap/syswrap-amd64-linux.c
===================================================================
--- branches/DRDDEV/coregrind/m_syswrap/syswrap-amd64-linux.c 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/coregrind/m_syswrap/syswrap-amd64-linux.c 2008-07-12 16:40:43 UTC (rev 8424)
@@ -1216,7 +1216,7 @@
GENX_(__NR_getpriority, sys_getpriority), // 140
GENX_(__NR_setpriority, sys_setpriority), // 141
-//zz LINXY(__NR_sched_setparam, sys_sched_setparam), // 142
+ LINXY(__NR_sched_setparam, sys_sched_setparam), // 142
LINXY(__NR_sched_getparam, sys_sched_getparam), // 143
LINX_(__NR_sched_setscheduler, sys_sched_setscheduler), // 144
Modified: branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc32-linux.c
===================================================================
--- branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc32-linux.c 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc32-linux.c 2008-07-12 16:40:43 UTC (rev 8424)
@@ -1655,7 +1655,7 @@
GENX_(__NR_munlock, sys_munlock), // 151
GENX_(__NR_mlockall, sys_mlockall), // 152
LINX_(__NR_munlockall, sys_munlockall), // 153
-//.. LINXY(__NR_sched_setparam, sys_sched_setparam), // 154
+ LINXY(__NR_sched_setparam, sys_sched_setparam), // 154
//..
LINXY(__NR_sched_getparam, sys_sched_getparam), // 155
LINX_(__NR_sched_setscheduler, sys_sched_setscheduler), // 156
Modified: branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc64-linux.c
===================================================================
--- branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc64-linux.c 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc64-linux.c 2008-07-12 16:40:43 UTC (rev 8424)
@@ -1324,7 +1324,7 @@
GENX_(__NR_munlock, sys_munlock), // 151
GENX_(__NR_mlockall, sys_mlockall), // 152
LINX_(__NR_munlockall, sys_munlockall), // 153
-// _____(__NR_sched_setparam, sys_sched_setparam), // 154
+ LINXY(__NR_sched_setparam, sys_sched_setparam), // 154
LINXY(__NR_sched_getparam, sys_sched_getparam), // 155
LINX_(__NR_sched_setscheduler, sys_sched_setscheduler), // 156
Modified: branches/DRDDEV/drd/Makefile.am
===================================================================
--- branches/DRDDEV/drd/Makefile.am 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/drd/Makefile.am 2008-07-12 16:40:43 UTC (rev 8424)
@@ -21,14 +21,20 @@
endif
-VGPRELOAD_DRD_SOURCES = drd_strmem_intercepts.c drd_pthread_intercepts.c
-VGPRELOAD_DRD_SOURCES += drd_qtcore_intercepts.c
-VGPRELOAD_DRD_SOURCES += drd_gomp_intercepts.c
+VGPRELOAD_DRD_SOURCES = \
+ drd_gomp_intercepts.c \
+ drd_pthread_intercepts.c \
+ drd_qtcore_intercepts.c \
+ drd_strmem_intercepts.c
-DRD_CFLAGS=@FLAG_W_EXTRA@ @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@ \
- -Wformat-nonliteral -Wno-inline -Wno-unused-parameter \
- -O2
+DRD_CFLAGS = \
+ @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@ \
+ -O2 \
+ @FLAG_W_EXTRA@ \
+ -Wformat-nonliteral \
+ -Wno-inline \
+ -Wno-unused-parameter
AM_CFLAGS_X86_LINUX += $(DRD_CFLAGS)
AM_CFLAGS_AMD64_LINUX += $(DRD_CFLAGS)
Modified: branches/DRDDEV/drd/Testing.txt
===================================================================
--- branches/DRDDEV/drd/Testing.txt 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/drd/Testing.txt 2008-07-12 16:40:43 UTC (rev 8424)
@@ -7,22 +7,25 @@
2. Run Konstantin's regression tests:
svn checkout http://data-race-test.googlecode.com/svn/trunk drt
make -C drt/unittest -s build
- ./vg-in-place --tool=drd drt/unittest/racecheck_unittest 2>&1|less
+ ./vg-in-place --tool=drd --check-stack-var=yes drt/unittest/racecheck_unittest 2>&1|less
3. Test the slowdown for matinv for various matrix sizes via the script
drd/scripts/run-matinv (must be about 24 for i == 1 and about
31 for i == 10 with n == 200).
4. Test whether DRD works with standard KDE applications and whether it does
- not print any false positives:
- ./vg-in-place --tool=drd kate
- ./vg-in-place --tool=drd --check-stack-var=yes kate
- ./vg-in-place --trace-children=yes --tool=drd knode
- ./vg-in-place --trace-children=yes --tool=drd --check-stack-var=yes knode
- ./vg-in-place --trace-children=yes --tool=drd amarokapp
+ not print any false positives. Test this both with KDE3 and KDE4.
+ ./vg-in-place --tool=drd --var-info=yes kate
+ ./vg-in-place --tool=drd --var-info=yes --check-stack-var=yes kate
+ ./vg-in-place --tool=drd --var-info=yes --trace-children=yes knode
+ ./vg-in-place --tool=drd --var-info=yes --check-stack-var=yes --trace-children=yes knode
+ ./vg-in-place --tool=drd --var-info=yes --check-stack-var=yes /usr/bin/designer
5. Test whether DRD works with standard GNOME applications. Expect
race reports triggered by ORBit_RootObject_duplicate() and after
having closed the GNOME terminal window:
- ./vg-in-place --trace-children=yes --tool=drd gnome-terminal
-6. Test DRD with Firefox. First of all, build and install Firefox 3:
+ ./vg-in-place --tool=drd --var-info=yes --trace-children=yes gnome-terminal
+6. Test DRD with Firefox. First of all, make sure that Valgrind is patched
+ such that it supports libjemalloc.so:
+ drd/scripts/add-libjemalloc-support
+ Next, build and install Firefox 3:
drd/scripts/download-and-build-firefox
- Next, run the following command:
- LD_LIBRARY_PATH=$HOME/software/mozilla-build/dist/lib: ./vg-in-place --trace-children=yes --tool=drd $HOME/software/mozilla-build/dist/bin/firefox-bin
+ Now run the following command:
+ LD_LIBRARY_PATH=$HOME/software/mozilla-build/dist/lib: ./vg-in-place --tool=drd --check-stack-var=yes --trace-children=yes $HOME/software/mozilla-build/dist/bin/firefox-bin
Modified: branches/DRDDEV/drd/docs/drd-manual.xml
===================================================================
--- branches/DRDDEV/drd/docs/drd-manual.xml 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/drd/docs/drd-manual.xml 2008-07-12 16:40:43 UTC (rev 8424)
@@ -998,6 +998,16 @@
on top of POSIX threads, and is hence directly supported by DRD.
</para>
+<para>
+One of the many facilities provided by the <literal>glib</literal>
+library is a block allocator, called <literal>g_slice</literal>. You
+have to disable this block allocator when using DRD by adding the
+following to the shell environment variables:
+<literal>G_SLICE=always-malloc</literal>. See also the <ulink
+url="http://library.gnome.org/devel/glib/stable/glib-Memory-Slices.html">GLib
+Reference Manual</ulink> for more information.
+</para>
+
</sect2>
Modified: branches/DRDDEV/drd/drd_error.c
===================================================================
--- branches/DRDDEV/drd/drd_error.c 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/drd/drd_error.c 2008-07-12 16:40:43 UTC (rev 8424)
@@ -134,7 +134,21 @@
}
else
{
- VG_(message)(Vg_UserMsg, "Allocation context: unknown.");
+ char sect_name[64];
+ VgSectKind sect_kind;
+
+ sect_kind = VG_(seginfo_sect_kind)(sect_name, sizeof(sect_name), dri->addr);
+ if (sect_kind != Vg_SectUnknown)
+ {
+ VG_(message)(Vg_UserMsg,
+ "Allocation context: %s section of %s",
+ VG_(pp_SectKind)(sect_kind),
+ sect_name);
+ }
+ else
+ {
+ VG_(message)(Vg_UserMsg, "Allocation context: unknown.");
+ }
}
if (s_drd_show_conflicting_segments)
{
Modified: branches/DRDDEV/drd/scripts/measurement-functions
===================================================================
--- branches/DRDDEV/drd/scripts/measurement-functions 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/drd/scripts/measurement-functions 2008-07-12 16:40:43 UTC (rev 8424)
@@ -40,7 +40,7 @@
## Read a stream of numbers from stdin (one per line), and print the average
# and standard deviation.
function avgstddev {
- awk '{n++;m=NF;for(i=1;i<=NF;i++){sum[i]+=$i;sumsq[i]+=$i*$i}}END{for(i=1;i<=m;i++){d=sumsq[i]/n-sum[i]*sum[i]/n/n;printf "%.2f %.2f ",sum[i]/n,(d>0?sqrt(d):0)}}'
+ awk '{n++;m=NF;for(i=1;i<=NF;i++){sum[i]+=$i;sumsq[i]+=$i*$i}}END{for(i=1;i<=m;i++){d=sumsq[i]/n-sum[i]*sum[i]/n/n;printf "%.2f %.2f ",sum[i]/n,(d>=0.0001?sqrt(d):0.01)}}'
}
## Query the virtual memory size for the last invocation of command $1 from
@@ -99,11 +99,14 @@
local i
echo "$@" >&2
+ if [ "${test_output}" != "" ]; then
+ echo "$@" >"${test_output}"
+ fi
for ((i=0;i<3;i++))
do
echo -n "$("${test_input:-true}" $p | \
/usr/bin/time --format="%e" "$@" 2>&1 | \
- tee "${test_output:-/dev/null}" | \
+ tee -a "${test_output:-/dev/null}" | \
tail -n 1) "
query_vsz "$@"
done
Modified: branches/DRDDEV/drd/scripts/run-splash2
===================================================================
--- branches/DRDDEV/drd/scripts/run-splash2 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/drd/scripts/run-splash2 2008-07-12 16:40:43 UTC (rev 8424)
@@ -13,19 +13,19 @@
rm -f "${tmp}"
p=1
- test_output="${1}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
+ test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
read avg1 stddev1 vsz1 vszdev1 < "$tmp"
echo "Average time: ${avg1} +/- ${stddev1} seconds." \
" VSZ: ${vsz1} +/- ${vszdev1} KB"
p=2
- test_output="${1}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
+ test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
read avg2 stddev2 vsz2 vszdev2 < "$tmp"
echo "Average time: ${avg2} +/- ${stddev2} seconds." \
" VSZ: ${vsz2} +/- ${vszdev2} KB"
p=4
- test_output="${1}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
+ test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
read avg4 stddev4 vsz4 vszdev4 < "$tmp"
echo "Average time: ${avg4} +/- ${stddev4} seconds." \
" VSZ: ${vsz4} +/- ${vszdev4} KB"
@@ -52,6 +52,12 @@
test_output="${1}-helgrind-4.out" \
print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} $VG --tool=helgrind "$@" -p${psep}${p} "${test_args}"
+ if [ -e $HGDEV_VG ]; then
+ p=4
+ test_output="${1}-helgrind-hb-4.out" \
+ print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} $HGDEV_VG --tool=helgrind --pure-happens-before=yes "$@" -p${psep}${p} "${test_args}"
+ fi
+
echo ''
rm -f "$tmp"
@@ -77,6 +83,10 @@
VG="${DRD_SCRIPTS_DIR}/../../vg-in-place"
fi
+if [ "$HGDEV_VG" = "" ]; then
+ HGDEV_VG="${DRD_SCRIPTS_DIR}/../../../valgrind-hgdev/vg-in-place"
+fi
+
if [ ! -e "$VG" ]; then
echo "Could not find $VG."
exit 1
@@ -101,66 +111,79 @@
# 15. Virtual memory size ratio for --tool=drd --check-stack-var=no -p4 versus -p4.
# 16. Execution time ratio for --tool=helgrind -p4 versus -p4.
# 17. Virtual memory size ratio for --tool=helgrind -p4 versus -p4.
-# 18. Execution time ratio for Intel Thread Checker -p4 versus -p4.
-# 19. Execution time ratio for Intel Thread Checker -p4 versus -p4.
+# 18. Execution time ratio for --tool=helgrind --pure-happens-before=yes -p4 versus -p4.
+# 19. Virtual memory size ratio for --tool=helgrind --pure-happens-before=yes -p4 versus -p4.
+# 20. Execution time ratio for Intel Thread Checker -p4 versus -p4.
+# 21. Execution time ratio for Intel Thread Checker -p4 versus -p4.
#
-# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-#########################################################################################################################
-# Results: native native native none none DRD DRD HG ITC ITC
-# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4+f
-# .......................................................................................................................
-# Cholesky 0.37 45867 0.25 55965 0.20 74944 8.8 2.08 28.9 1.66 171 1.96 114 2.85 54 3.13 239 82
-# FFT 0.20 23976 0.13 54026 0.09 114112 8.2 3.02 18.4 0.85 130 1.20 85 1.27 416 1.65 90 41
-# LU, contiguous 0.95 16784 0.64 24984 0.43 41392 8.0 3.88 19.3 2.17 120 2.84 113 3.04 223 4.36 428 128
-# LU, non-contiguous 1.06 16792 0.67 24984 0.40 41376 7.5 3.88 20.0 2.17 210 3.04 190 3.24 166 4.26 428 128
-# Ocean, contiguous 24.25 918016 14.57 927732 9.09 945664 2.4 1.05 6.6 1.05 89 1.92 77 1.93 149 1.88 90 28
-# Ocean, non-contiguous 0.36 32120 0.18 40320 0.16 56728 4.2 2.51 10.4 1.86 58 2.27 71 2.43 127 3.54 90 28
-# Radiosity 4.73 56120 .... ..... .... ..... 16.6 1.86 .... .... ... .... .. .... .. .... 485 163
-# Radix 4.98 279744 2.55 287936 1.36 304448 6.1 1.17 22.4 1.16 57 1.90 52 1.92 208 2.09 222 56
-# Raytrace 2.76 320526 1.44 328448 0.77 344832 8.3 1.15 28.6 1.14 2324 1.31 326 1.34 420 0.60 172 53
-# Water-n2 0.19 17304 0.12 33680 0.12 66432 12.0 3.85 20.2 3.53 2789 2.78 562 2.84 121 3.32 189 39
-# Water-sp 0.21 10976 0.11 19176 0.07 35568 11.0 5.41 33.3 2.37 475 2.85 147 3.08 196 4.61 183 34
-# .......................................................................................................................
-# Hardware: Two quad-core Intel Xeon L5130, 1.6 GHz, 4 MB L2 cache, 16 GB RAM.
-# Software: Ubuntu 8.04 server, 64-bit, gcc 4.3.1.
-#########################################################################################################################
-# Results: native native native none none DRD DRD HG ITC ITC
-# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4+f
-# .......................................................................................................................
-# Cholesky 0.29 45835 0.21 55933 4.51 74944 8.8 2.21 1.0 1.75 6 2.05 4 2.16 2 3.22 239 82
-# FFT 0.17 23949 0.12 32144 0.11 48536 7.8 3.28 12.0 2.13 85 2.96 56 3.13 282 4.02 90 41
-# LU, contiguous 0.78 16752 0.53 24957 0.53 41365 7.9 4.27 11.7 2.33 78 3.00 74 3.20 146 4.51 428 128
-# LU, non-contiguous 0.86 16760 0.47 24957 0.50 41352 7.0 4.26 12.2 2.33 135 3.20 125 3.40 107 4.41 428 128
-# Ocean, contiguous 19.47 918016 12.59 927232 12.61 945664 2.4 1.06 3.8 1.06 53 1.92 47 1.93 86 1.88 90 28
-# Ocean, non-contiguous 0.31 32088 0.17 40291 0.19 56696 3.9 2.71 6.8 1.97 38 2.38 47 2.55 84 3.66 90 28
-# Radiosity 3.85 56088 .... ..... .... ..... 16.4 1.98 .... .... ... .... .. .... .. .... 485 163
-# Radix 4.05 279680 2.12 287872 2.14 304405 6.0 1.20 11.4 1.18 29 1.92 27 1.94 157 2.12 222 56
-# Raytrace 2.22 320192 .... ..... 2.20 ...... 7.4 1.17 ... .... ... .... .. .... .. .... 172 53
-# Water-n2 0.15 17272 0.10 33651 0.11 66432 12.3 4.22 17.5 1.84 2320 2.90 583 2.92 105 3.41 189 39
-# Water-sp 0.16 10947 0.09 19144 0.09 35536 11.4 6.00 20.7 2.55 251 3.03 91 3.26 123 4.79 183 34
-# .......................................................................................................................
-# Hardware: dual-core Intel Xeon 5130, 2.0 GHz, 4 MB L2 cache, 4 GB RAM.
-# Software: Ubuntu 7.10 server, 64-bit, gcc 4.3.1, xload -update 1 running.
-#########################################################################################################################
-# Results: native native native none none DRD DRD HG ITC ITC
-# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4+f
-# .......................................................................................................................
-# Cholesky 0.21 45672 0.15 55765 1.02 140203 9.05 2.31 4.5 0.96 20 1.12 15 1.18 7 1.76 239 82
-# FFT 0.11 23776 0.07 75683 0.07 113920 8.36 3.48 13.1 0.94 86 1.30 64 1.37 371 1.75 90 41
-# LU, contiguous 0.58 16584 0.38 24784 0.36 41192 7.72 4.56 12.7 2.44 81 3.11 80 3.31 163 4.63 428 128
-# LU, non-contiguous 0.64 16592 0.34 24784 0.36 41176 7.59 4.55 12.7 2.44 134 3.31 124 3.51 111 4.53 428 128
-# Ocean, contiguous 14.37 917504 9.60 927232 9.61 945664 2.38 1.06 3.6 1.06 61 1.93 47 1.94 89 1.89 90 28
-# Ocean, non-contiguous 0.20 31944 0.12 40144 0.14 56552 4.40 2.85 6.7 2.05 37 2.48 45 2.63 84 3.74 90 28
-# Radiosity 2.33 ..... 2.32 ..... 2.33 ..... .... .... .... .... 175 .... 61 .... 60 .... 485 163
-# Radix 2.80 279488 1.46 287744 1.47 304256 6.17 1.21 11.8 1.19 30 1.93 28 1.96 212 2.13 222 56
-# Raytrace 1.68 320064 0.87 328256 0.87 388330 7.29 1.18 14.9 1.04 1290 1.19 169 1.21 219 1.86 172 53
-# Water-n2 0.16 17104 0.07 33480 0.08 66240 8.62 4.50 17.8 1.91 1869 2.94 449 3.01 106 3.48 189 39
-# Water-sp 0.13 10784 0.07 84352 0.06 144448 10.1 6.47 22.5 0.65 258 0.77 91 0.83 129 1.21 183 34
-# .......................................................................................................................
-# Hardware: dual-core Intel Core2 Duo E6750, 2.66 GHz, 4 MB L2 cache, 2 GB RAM.
-# Software: openSUSE 11.0, 64-bit, gcc 4.3.1, runlevel 3.
-#########################################################################################################################
+# Note: Helgrind uses a granularity of four bytes for data race detection, and DRD a granularity of one byte.
+#
+# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
+####################################################################################################################################
+# Results: native native native none none DRD DRD HG HG-hb ITC ITC
+# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4 -p4+f
+# ..................................................................................................................................
+# Cholesky 0.37 45867 0.25 55965 0.20 74944 8.8 2.08 28.9 1.66 171 1.96 114 2.85 54 3.13 ... .... 239 82
+# FFT 0.20 23976 0.13 54026 0.09 114112 8.2 3.02 18.4 0.85 130 1.20 85 1.27 416 1.65 ... .... 90 41
+# LU, contiguous 0.95 16784 0.64 24984 0.43 41392 8.0 3.88 19.3 2.17 120 2.84 113 3.04 223 4.36 ... .... 428 128
+# Ocean, contiguous 24.25 918016 14.57 927732 9.09 945664 2.4 1.05 6.6 1.05 89 1.92 77 1.93 149 1.88 ... .... 90 28
+# Radix 4.98 279744 2.55 287936 1.36 304448 6.1 1.17 22.4 1.16 57 1.90 52 1.92 208 2.09 ... .... 222 56
+# Raytrace 2.76 320526 1.44 328448 0.77 344832 8.3 1.15 28.6 1.14 2324 1.31 326 1.34 420 0.60 ... .... 172 53
+# Water-n2 0.19 17304 0.12 33680 0.12 66432 12.0 3.85 20.2 3.53 2789 2.78 562 2.84 121 3.32 ... .... 189 39
+# Water-sp 0.21 10976 0.11 19176 0.07 35568 11.0 5.41 33.3 2.37 475 2.85 147 3.08 196 4.61 ... .... 183 34
+# ..................................................................................................................................
+# Hardware: Two quad-core Intel Xeon L5130, 1.6 GHz, 4 MB L2 cache, 16 GB RAM.
+# Software: Ubuntu 8.04 server, 64-bit, gcc 4.3.1.
+####################################################################################################################################
+# Results: native native native none none DRD DRD HG HG-hb ITC ITC
+# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4 -p4+f
+# ..................................................................................................................................
+# Cholesky 0.29 45835 0.21 55933 4.51 74944 8.8 2.21 1.0 1.75 6 2.05 4 2.16 2 3.22 ... .... 239 82
+# FFT 0.17 23949 0.12 32144 0.11 48536 7.8 3.28 12.0 2.13 85 2.96 56 3.13 282 4.02 ... .... 90 41
+# LU, contiguous 0.78 16752 0.53 24957 0.53 41365 7.9 4.27 11.7 2.33 78 3.00 74 3.20 146 4.51 ... .... 428 128
+# Ocean, contiguous 19.47 918016 12.59 927232 12.61 945664 2.4 1.06 3.8 1.06 53 1.92 47 1.93 86 1.88 ... .... 90 28
+# Radix 4.05 279680 2.12 287872 2.14 304405 6.0 1.20 11.4 1.18 29 1.92 27 1.94 157 2.12 ... .... 222 56
+# Raytrace 2.22 320192 .... ..... 2.20 ...... 7.4 1.17 ... .... ... .... .. .... .. .... ... .... 172 53
+# Water-n2 0.15 17272 0.10 33651 0.11 66432 12.3 4.22 17.5 1.84 2320 2.90 583 2.92 105 3.41 ... .... 189 39
+# Water-sp 0.16 10947 0.09 19144 0.09 35536 11.4 6.00 20.7 2.55 251 3.03 91 3.26 123 4.79 ... .... 183 34
+# ..................................................................................................................................
+# Hardware: dual-core Intel Xeon 5130, 2.0 GHz, 4 MB L2 cache, 4 GB RAM.
+# Software: Ubuntu 7.10 server, 64-bit, gcc 4.3.1, xload -update 1 running.
+####################################################################################################################################
+# Results: native native native none none DRD DRD HG HG-hb ITC ITC
+# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4 -p4+f
+# ..................................................................................................................................
+# Cholesky 0.08 21760 0.05 31728 0.56 50148 13.6 3.62 3.8 2.14 16 2.51 14 2.68 9 4.03 15 5.01 239 82
+# FFT 0.02 13024 0.02 64931 0.01 81317 17.5 5.37 36.0 1.16 248 1.35 219 1.45 704 2.19 182 2.50 90 41
+# LU, contiguous 0.08 10440 0.06 18640 0.06 35048 9.9 6.45 13.0 2.63 81 2.89 88 3.13 156 4.92 125 5.63 428 128
+# Ocean, contiguous 0.19 23208 0.18 31744 0.13 48888 4.8 3.45 7.6 2.17 59 2.58 50 2.75 77 4.01 72 4.96 90 28
+# Radix 0.17 33760 0.10 41952 0.10 58488 7.2 2.68 14.0 1.98 28 2.52 41 2.66 159 3.70 34 4.12 222 56
+# Raytrace 0.21 320064 0.21 320064 0.21 320064 13.3 1.18 13.2 1.18 169 1.25 58 1.25 105 2.10 71 2.96 172 53
+# Water-n2 0.11 17104 0.07 33480 0.08 66240 12.4 4.38 17.5 1.88 1877 2.93 525 2.97 106 3.47 105 4.15 189 39
+# Water-sp 0.12 10784 0.06 84352 0.06 100835 11.0 6.27 22.7 0.92 257 1.09 91 1.17 129 1.72 139 1.97 183 34
+# ..................................................................................................................................
+# Hardware: dual-core Intel Core2 Duo E6750, 2.66 GHz, 4 MB L2 cache, 2 GB RAM.
+# Software: openSUSE 11.0, 64-bit, gcc 4.3.1, runlevel 3.
+####################################################################################################################################
+####
+# Notes:
+# - The ITC performance numbers in the above table originate from table 1 in
+# the following paper:
+# Paul Sack, Brian E. Bliss, Zhiqiang Ma, Paul Petersen, Josep Torrellas,
+# Accurate and efficient filtering for the Intel thread checker race
+# detector, Proceedings of the 1st workshop on Architectural and system
+# support for improving software dependability, San Jose, California,
+# 2006. Pages: 34 - 41.
+# - The input parameters for benchmarks below originate from table 1 in the
+# following paper:
+# The SPLASH-2 programs: characterization and methodological considerations
+# Woo, S.C.; Ohara, M.; Torrie, E.; Singh, J.P.; Gupta, A.
+# 1995. Proceedings of the 22nd Annual International Symposium on Computer
+# Architecture, 22-24 Jun 1995, Page(s): 24 - 36.
+# ftp://www-flash.stanford.edu/pub/splash2/splash2_isca95.ps.Z
+####
+
cache_size=$(get_cache_size)
log2_cache_size=$(log2 ${cache_size})
@@ -171,29 +194,29 @@
do
gzip -cd <$f >${f%.Z}
done
- test_args=tk29.O run_test ../CHOLESKY -C$((cache_size))
+ test_args=tk15.O run_test ../CHOLESKY -C$((cache_size))
)
# FFT
-run_test ${SPLASH2}/codes/kernels/fft/FFT -t -l$((log2_cache_size/2)) -m18
+run_test ${SPLASH2}/codes/kernels/fft/FFT -t -l$((log2_cache_size/2)) -m16
# LU, contiguous blocks.
-run_test ${SPLASH2}/codes/kernels/lu/contiguous_blocks/LU -n1024
+run_test ${SPLASH2}/codes/kernels/lu/contiguous_blocks/LU -n512
# LU, non-contiguous blocks.
-run_test ${SPLASH2}/codes/kernels/lu/non_contiguous_blocks/LU -n1024
+#run_test ${SPLASH2}/codes/kernels/lu/non_contiguous_blocks/LU -n512
# Ocean
-run_test ${SPLASH2}/codes/apps/ocean/contiguous_partitions/OCEAN -n2050
-run_test ${SPLASH2}/codes/apps/ocean/non_contiguous_partitions/OCEAN -n258
+run_test ${SPLASH2}/codes/apps/ocean/contiguous_partitions/OCEAN -n258
+#run_test ${SPLASH2}/codes/apps/ocean/non_contiguous_partitions/OCEAN -n258
-# Radiosity.
+# Radiosity. Disabled this benchmark because it deadlocks.
if false; then
-psep=' ' run_test ${SPLASH2}/codes/apps/radiosity/RADIOSITY -batch -room
+psep=' ' run_test ${SPLASH2}/codes/apps/radiosity/RADIOSITY -batch -room -ae 5000.0 -en 0.050 -bf 0.10
fi
# Radix
-run_test ${SPLASH2}/codes/kernels/radix/RADIX -n $((2**24))
+run_test ${SPLASH2}/codes/kernels/radix/RADIX -n$((2**20)) -r1024
# Raytrace
(
@@ -203,7 +226,8 @@
do
gzip -cd <$f >${f%.Z}
done
- test_args=balls4.env psep=' ' run_test ../RAYTRACE
+ cd ..
+ test_args=inputs/car.env psep=' ' run_test ./RAYTRACE
)
# Water-n2
Modified: branches/DRDDEV/drd/scripts/run-splash2-water-input
===================================================================
--- branches/DRDDEV/drd/scripts/run-splash2-water-input 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/drd/scripts/run-splash2-water-input 2008-07-12 16:40:43 UTC (rev 8424)
@@ -3,6 +3,11 @@
## Generate input for water-n2 and water-sp. Argument $1 is the number of
# processors.
+# File format:
+# TSTEP NMOL NSTEP NORDER
+# NSAVE NRST NPRINT NFMC
+# NumProcs CUTOFF
+
cat <<EOF
1.5e-16 512 3 6
-1 3000 3 0
Modified: branches/DRDDEV/drd/tests/Makefile.am
===================================================================
--- branches/DRDDEV/drd/tests/Makefile.am 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/drd/tests/Makefile.am 2008-07-12 16:40:43 UTC (rev 8424)
@@ -17,6 +17,8 @@
EXTRA_DIST = \
$(noinst_SCRIPTS) \
+ atomic_var.stderr.exp \
+ atomic_var.vgtest \
drd_bitmap_test.stderr.exp \
drd_bitmap_test.stdout.exp \
drd_bitmap_test.vgtest \
@@ -182,7 +184,8 @@
-I$(top_builddir)/include -I$(top_srcdir)/VEX/pub
AM_CXXFLAGS = $(AM_CFLAGS)
-check_PROGRAMS = \
+check_PROGRAMS = \
+ atomic_var \
drd_bitmap_test \
fp_race \
hg01_all_ok \
@@ -244,6 +247,9 @@
endif
+atomic_var_SOURCES = atomic_var.c
+atomic_var_LDADD = -lpthread
+
drd_bitmap_test_SOURCES = drd_bitmap_test.c
drd_bitmap_test_CFLAGS = $(AM_CFLAGS) -O2 \
-DENABLE_DRD_CONSISTENCY_CHECKS\
Property changes on: branches/DRDDEV/drd/tests/pth_cond_race3.stderr.exp
___________________________________________________________________
Name: svn:mergeinfo
-
Property changes on: branches/DRDDEV/drd/tests/pth_cond_race3.vgtest
___________________________________________________________________
Name: svn:mergeinfo
-
Property changes on: branches/DRDDEV/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8
___________________________________________________________________
Name: svn:mergeinfo
-
Modified: branches/DRDDEV/glibc-2.X-drd.supp
===================================================================
--- branches/DRDDEV/glibc-2.X-drd.supp 2008-07-12 16:31:10 UTC (rev 8423)
+++ branches/DRDDEV/glibc-2.X-drd.supp 2008-07-12 16:40:43 UTC (rev 8424)
@@ -24,6 +24,45 @@
obj:/lib*/ld-*.so
}
{
+ dl-dlsym-1
+ drd:ConflictingAccess
+ obj:/lib/ld-*.so
+ obj:/lib/tls/*/cmov/libc-*.so
+ fun:_dl_sym
+}
+{
+ dl-dlsym-2
+ drd:ConflictingAccess
+ obj:/lib/ld-*.so
+ obj:/lib/libc-*.so
+ obj:/lib/libdl-*.so
+ obj:/lib/ld-*.so
+ obj:/lib/libdl-*.so
+ fun:dlsym
+}
+{
+ dl-dlsym-3
+ drd:ConflictingAccess
+ obj:/lib/ld-*.so
+ obj:/lib/tls/*/cmov/libc-*.so
+ obj:/lib/ld-*.so
+ fun:__libc_dlsym
+}
+{
+ dl-dlsym-4
+ drd:ConflictingAccess
+ obj:/lib/ld-*.so
+ obj:/lib/libc-*.so
+ obj:/lib/ld-*.so
+ fun:__libc_dlsym
+}
+{
+ dl-backtrace_symbols
+ drd:ConflictingAccess
+ fun:_dl_addr
+ fun:backtrace_symbols
+}
+{
libc
drd:ConflictingAccess
fun:__libc_enable_asynccancel
|
|
From: <sv...@va...> - 2008-07-12 16:31:03
|
Author: bart Date: 2008-07-12 17:31:10 +0100 (Sat, 12 Jul 2008) New Revision: 8423 Log: Restored proper compiler flag order. Modified: trunk/drd/Makefile.am Modified: trunk/drd/Makefile.am =================================================================== --- trunk/drd/Makefile.am 2008-07-12 16:16:26 UTC (rev 8422) +++ trunk/drd/Makefile.am 2008-07-12 16:31:10 UTC (rev 8423) @@ -28,13 +28,13 @@ drd_strmem_intercepts.c -DRD_CFLAGS = \ - -O2 \ - -Wformat-nonliteral \ - -Wno-inline \ - -Wno-unused-parameter \ - @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@ \ - @FLAG_W_EXTRA@ +DRD_CFLAGS = \ + @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@ \ + -O2 \ + @FLAG_W_EXTRA@ \ + -Wformat-nonliteral \ + -Wno-inline \ + -Wno-unused-parameter AM_CFLAGS_X86_LINUX += $(DRD_CFLAGS) AM_CFLAGS_AMD64_LINUX += $(DRD_CFLAGS) |
|
From: <sv...@va...> - 2008-07-12 16:16:20
|
Author: bart Date: 2008-07-12 17:16:26 +0100 (Sat, 12 Jul 2008) New Revision: 8422 Log: Cleanup. Modified: trunk/drd/Makefile.am Modified: trunk/drd/Makefile.am =================================================================== --- trunk/drd/Makefile.am 2008-07-12 16:14:46 UTC (rev 8421) +++ trunk/drd/Makefile.am 2008-07-12 16:16:26 UTC (rev 8422) @@ -21,14 +21,20 @@ endif -VGPRELOAD_DRD_SOURCES = drd_strmem_intercepts.c drd_pthread_intercepts.c -VGPRELOAD_DRD_SOURCES += drd_qtcore_intercepts.c -VGPRELOAD_DRD_SOURCES += drd_gomp_intercepts.c +VGPRELOAD_DRD_SOURCES = \ + drd_gomp_intercepts.c \ + drd_pthread_intercepts.c \ + drd_qtcore_intercepts.c \ + drd_strmem_intercepts.c -DRD_CFLAGS=@FLAG_W_EXTRA@ @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@ \ - -Wformat-nonliteral -Wno-inline -Wno-unused-parameter \ - -O2 +DRD_CFLAGS = \ + -O2 \ + -Wformat-nonliteral \ + -Wno-inline \ + -Wno-unused-parameter \ + @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@ \ + @FLAG_W_EXTRA@ AM_CFLAGS_X86_LINUX += $(DRD_CFLAGS) AM_CFLAGS_AMD64_LINUX += $(DRD_CFLAGS) |
|
From: <sv...@va...> - 2008-07-12 16:14:38
|
Author: bart Date: 2008-07-12 17:14:46 +0100 (Sat, 12 Jul 2008) New Revision: 8421 Log: Removed data that is no longer needed. Added a reference. Modified: trunk/drd/scripts/run-splash2 Modified: trunk/drd/scripts/run-splash2 =================================================================== --- trunk/drd/scripts/run-splash2 2008-07-12 16:01:07 UTC (rev 8420) +++ trunk/drd/scripts/run-splash2 2008-07-12 16:14:46 UTC (rev 8421) @@ -126,10 +126,7 @@ # Cholesky 0.37 45867 0.25 55965 0.20 74944 8.8 2.08 28.9 1.66 171 1.96 114 2.85 54 3.13 ... .... 239 82 # FFT 0.20 23976 0.13 54026 0.09 114112 8.2 3.02 18.4 0.85 130 1.20 85 1.27 416 1.65 ... .... 90 41 # LU, contiguous 0.95 16784 0.64 24984 0.43 41392 8.0 3.88 19.3 2.17 120 2.84 113 3.04 223 4.36 ... .... 428 128 -# LU, non-contiguous 1.06 16792 0.67 24984 0.40 41376 7.5 3.88 20.0 2.17 210 3.04 190 3.24 166 4.26 ... .... - - # Ocean, contiguous 24.25 918016 14.57 927732 9.09 945664 2.4 1.05 6.6 1.05 89 1.92 77 1.93 149 1.88 ... .... 90 28 -# Ocean, non-contiguous 0.36 32120 0.18 40320 0.16 56728 4.2 2.51 10.4 1.86 58 2.27 71 2.43 127 3.54 ... .... - - -# Radiosity 4.73 56120 .... ..... .... ..... 16.6 1.86 .... .... ... .... .. .... .. .... ... .... 485 163 # Radix 4.98 279744 2.55 287936 1.36 304448 6.1 1.17 22.4 1.16 57 1.90 52 1.92 208 2.09 ... .... 222 56 # Raytrace 2.76 320526 1.44 328448 0.77 344832 8.3 1.15 28.6 1.14 2324 1.31 326 1.34 420 0.60 ... .... 172 53 # Water-n2 0.19 17304 0.12 33680 0.12 66432 12.0 3.85 20.2 3.53 2789 2.78 562 2.84 121 3.32 ... .... 189 39 @@ -144,10 +141,7 @@ # Cholesky 0.29 45835 0.21 55933 4.51 74944 8.8 2.21 1.0 1.75 6 2.05 4 2.16 2 3.22 ... .... 239 82 # FFT 0.17 23949 0.12 32144 0.11 48536 7.8 3.28 12.0 2.13 85 2.96 56 3.13 282 4.02 ... .... 90 41 # LU, contiguous 0.78 16752 0.53 24957 0.53 41365 7.9 4.27 11.7 2.33 78 3.00 74 3.20 146 4.51 ... .... 428 128 -# LU, non-contiguous 0.86 16760 0.47 24957 0.50 41352 7.0 4.26 12.2 2.33 135 3.20 125 3.40 107 4.41 ... .... - - # Ocean, contiguous 19.47 918016 12.59 927232 12.61 945664 2.4 1.06 3.8 1.06 53 1.92 47 1.93 86 1.88 ... .... 90 28 -# Ocean, non-contiguous 0.31 32088 0.17 40291 0.19 56696 3.9 2.71 6.8 1.97 38 2.38 47 2.55 84 3.66 ... .... - - -# Radiosity 3.85 56088 .... ..... .... ..... 16.4 1.98 .... .... ... .... .. .... .. .... ... .... 485 163 # Radix 4.05 279680 2.12 287872 2.14 304405 6.0 1.20 11.4 1.18 29 1.92 27 1.94 157 2.12 ... .... 222 56 # Raytrace 2.22 320192 .... ..... 2.20 ...... 7.4 1.17 ... .... ... .... .. .... .. .... ... .... 172 53 # Water-n2 0.15 17272 0.10 33651 0.11 66432 12.3 4.22 17.5 1.84 2320 2.90 583 2.92 105 3.41 ... .... 189 39 @@ -163,7 +157,6 @@ # FFT 0.02 13024 0.02 64931 0.01 81317 17.5 5.37 36.0 1.16 248 1.35 219 1.45 704 2.19 182 2.50 90 41 # LU, contiguous 0.08 10440 0.06 18640 0.06 35048 9.9 6.45 13.0 2.63 81 2.89 88 3.13 156 4.92 125 5.63 428 128 # Ocean, contiguous 0.19 23208 0.18 31744 0.13 48888 4.8 3.45 7.6 2.17 59 2.58 50 2.75 77 4.01 72 4.96 90 28 -# Radiosity 0.43 55912 .... ..... .... ..... .... .... .... .... ... .... .. .... .. .... ... .... 485 163 # Radix 0.17 33760 0.10 41952 0.10 58488 7.2 2.68 14.0 1.98 28 2.52 41 2.66 159 3.70 34 4.12 222 56 # Raytrace 0.21 320064 0.21 320064 0.21 320064 13.3 1.18 13.2 1.18 169 1.25 58 1.25 105 2.10 71 2.96 172 53 # Water-n2 0.11 17104 0.07 33480 0.08 66240 12.4 4.38 17.5 1.88 1877 2.93 525 2.97 106 3.47 105 4.15 189 39 @@ -174,13 +167,21 @@ #################################################################################################################################### #### -# Note: the input parameters for benchmarks below originate from table 1 in the -# following paper: -# The SPLASH-2 programs: characterization and methodological considerations -# Woo, S.C.; Ohara, M.; Torrie, E.; Singh, J.P.; Gupta, A. -# Computer Architecture, 1995. Proceedings. 22nd Annual International Symposium -# on Volume , Issue , 22-24 Jun 1995 Page(s): 24 - 36. -# ftp://www-flash.stanford.edu/pub/splash2/splash2_isca95.ps.Z +# Notes: +# - The ITC performance numbers in the above table originate from table 1 in +# the following paper: +# Paul Sack, Brian E. Bliss, Zhiqiang Ma, Paul Petersen, Josep Torrellas, +# Accurate and efficient filtering for the Intel thread checker race +# detector, Proceedings of the 1st workshop on Architectural and system +# support for improving software dependability, San Jose, California, +# 2006. Pages: 34 - 41. +# - The input parameters for benchmarks below originate from table 1 in the +# following paper: +# The SPLASH-2 programs: characterization and methodological considerations +# Woo, S.C.; Ohara, M.; Torrie, E.; Singh, J.P.; Gupta, A. +# 1995. Proceedings of the 22nd Annual International Symposium on Computer +# Architecture, 22-24 Jun 1995, Page(s): 24 - 36. +# ftp://www-flash.stanford.edu/pub/splash2/splash2_isca95.ps.Z #### cache_size=$(get_cache_size) |
|
From: <sv...@va...> - 2008-07-12 16:01:04
|
Author: bart
Date: 2008-07-12 17:01:07 +0100 (Sat, 12 Jul 2008)
New Revision: 8420
Log:
Changed data race detection granularity from one to four bytes.
Modified:
branches/DRDDEV/drd/drd_bitmap.c
branches/DRDDEV/drd/drd_bitmap.h
branches/DRDDEV/drd/tests/drd_bitmap_test.c
branches/DRDDEV/drd/tests/tc16_byterace.stderr.exp
Modified: branches/DRDDEV/drd/drd_bitmap.c
===================================================================
--- branches/DRDDEV/drd/drd_bitmap.c 2008-07-10 15:44:39 UTC (rev 8419)
+++ branches/DRDDEV/drd/drd_bitmap.c 2008-07-12 16:01:07 UTC (rev 8420)
@@ -118,7 +118,7 @@
/* ADDR0_COUNT highest addresses in the address range. At least on Linux */
/* this is not a problem since the upper part of the address space is */
/* reserved for the kernel. */
- tl_assert(a2 < first_address_with_higher_lsb(a2));
+ tl_assert(a2 < first_address_with_higher_msb(a2));
for (b = a1; b < a2; b = b_next)
{
@@ -128,7 +128,7 @@
UWord b0 = address_lsb(b);
const UWord b1 = address_msb(b);
- b_next = first_address_with_higher_lsb(b);
+ b_next = first_address_with_higher_msb(b);
if (b_next > a2)
{
b_next = a2;
@@ -146,8 +146,8 @@
break;
tl_assert(a1 <= b_start && b_start <= a2);
- if (first_address_with_higher_lsb(make_address(bm2->addr, 0)) < a2)
- b_end = first_address_with_higher_lsb(make_address(bm2->addr, 0));
+ if (first_address_with_higher_msb(make_address(bm2->addr, 0)) < a2)
+ b_end = first_address_with_higher_msb(make_address(bm2->addr, 0));
else
b_end = a2;
tl_assert(a1 <= b_end && b_end <= a2);
@@ -275,7 +275,7 @@
{
const struct bitmap2* bm2 = bm2_lookup(bm, address_msb(b));
- b_next = first_address_with_higher_lsb(b);
+ b_next = first_address_with_higher_msb(b);
if (b_next > a2)
{
b_next = a2;
@@ -297,8 +297,8 @@
break;
tl_assert(a1 <= b_start && b_start <= a2);
- if (first_address_with_higher_lsb(make_address(bm2->addr, 0)) < a2)
- b_end = first_address_with_higher_lsb(make_address(bm2->addr, 0));
+ if (first_address_with_higher_msb(make_address(bm2->addr, 0)) < a2)
+ b_end = first_address_with_higher_msb(make_address(bm2->addr, 0));
else
b_end = a2;
tl_assert(a1 <= b_end && b_end <= a2);
@@ -328,7 +328,7 @@
{
const struct bitmap2* bm2 = bm2_lookup(bm, address_msb(b));
- b_next = first_address_with_higher_lsb(b);
+ b_next = first_address_with_higher_msb(b);
if (b_next > a2)
{
b_next = a2;
@@ -350,8 +350,8 @@
break;
tl_assert(a1 <= b_start && b_start <= a2);
- if (first_address_with_higher_lsb(make_address(bm2->addr, 0)) < a2)
- b_end = first_address_with_higher_lsb(make_address(bm2->addr, 0));
+ if (first_address_with_higher_msb(make_address(bm2->addr, 0)) < a2)
+ b_end = first_address_with_higher_msb(make_address(bm2->addr, 0));
else
b_end = a2;
tl_assert(a1 <= b_end && b_end <= a2);
@@ -383,7 +383,7 @@
{
const struct bitmap2* bm2 = bm2_lookup(bm, address_msb(b));
- b_next = first_address_with_higher_lsb(b);
+ b_next = first_address_with_higher_msb(b);
if (b_next > a2)
{
b_next = a2;
@@ -405,8 +405,8 @@
break;
tl_assert(a1 <= b_start && b_start <= a2);
- if (first_address_with_higher_lsb(make_address(bm2->addr, 0)) < a2)
- b_end = first_address_with_higher_lsb(make_address(bm2->addr, 0));
+ if (first_address_with_higher_msb(make_address(bm2->addr, 0)) < a2)
+ b_end = first_address_with_higher_msb(make_address(bm2->addr, 0));
else
b_end = a2;
tl_assert(a1 <= b_end && b_end <= a2);
@@ -462,7 +462,7 @@
{
struct bitmap2* const p2 = bm2_lookup_exclusive(bm, address_msb(b));
- b_next = first_address_with_higher_lsb(b);
+ b_next = first_address_with_higher_msb(b);
if (b_next > a2)
{
b_next = a2;
@@ -473,36 +473,40 @@
Addr c = b;
/* If the first address in the bitmap that must be cleared does not */
/* start on an UWord boundary, start clearing the first addresses. */
- if (uword_lsb(c))
+ if (uword_lsb(address_lsb(c)))
{
- Addr c_next = uword_msb(c) + BITS_PER_UWORD;
+ Addr c_next = first_address_with_higher_uword_msb(c);
if (c_next > b_next)
c_next = b_next;
- bm0_clear_range(p2->bm1.bm0_r, address_lsb(c), c_next - c);
- bm0_clear_range(p2->bm1.bm0_w, address_lsb(c), c_next - c);
+ bm0_clear_range(p2->bm1.bm0_r, address_lsb(c),
+ SCALED_SIZE(c_next - c));
+ bm0_clear_range(p2->bm1.bm0_w, address_lsb(c),
+ SCALED_SIZE(c_next - c));
c = c_next;
}
/* If some UWords have to be cleared entirely, do this now. */
- if (uword_lsb(c) == 0)
+ if (uword_lsb(address_lsb(c)) == 0)
{
- const Addr c_next = uword_msb(b_next);
- tl_assert(uword_lsb(c) == 0);
- tl_assert(uword_lsb(c_next) == 0);
+ const Addr c_next = first_address_with_same_uword_lsb(b_next);
+ tl_assert(uword_lsb(address_lsb(c)) == 0);
+ tl_assert(uword_lsb(address_lsb(c_next)) == 0);
tl_assert(c_next <= b_next);
tl_assert(c <= c_next);
if (c_next > c)
{
- const UWord idx = uword_index(address_lsb(c));
- VG_(memset)(&p2->bm1.bm0_r[idx], 0, (c_next - c) / 8);
- VG_(memset)(&p2->bm1.bm0_w[idx], 0, (c_next - c) / 8);
+ const UWord idx = uword_msb(address_lsb(c));
+ VG_(memset)(&p2->bm1.bm0_r[idx], 0, SCALED_SIZE((c_next - c) / 8));
+ VG_(memset)(&p2->bm1.bm0_w[idx], 0, SCALED_SIZE((c_next - c) / 8));
c = c_next;
}
}
/* If the last address in the bitmap that must be cleared does not */
/* fall on an UWord boundary, clear the last addresses. */
/* tl_assert(c <= b_next); */
- bm0_clear_range(p2->bm1.bm0_r, address_lsb(c), b_next - c);
- bm0_clear_range(p2->bm1.bm0_w, address_lsb(c), b_next - c);
+ bm0_clear_range(p2->bm1.bm0_r, address_lsb(c),
+ SCALED_SIZE(b_next - c));
+ bm0_clear_range(p2->bm1.bm0_w, address_lsb(c),
+ SCALED_SIZE(b_next - c));
}
}
}
@@ -569,7 +573,8 @@
{
const struct bitmap2* bm2 = bm2_lookup(bm, address_msb(b));
- b_next = first_address_with_higher_lsb(b);
+ b_next = first_address_with_higher_msb(b);
+ tl_assert(address_msb(b_next) == address_msb(b) + 1);
if (b_next > a2)
{
b_next = a2;
@@ -591,8 +596,8 @@
break;
tl_assert(a1 <= b_start && b_start <= a2);
- if (first_address_with_higher_lsb(make_address(bm2->addr, 0)) < a2)
- b_end = first_address_with_higher_lsb(make_address(bm2->addr, 0));
+ if (first_address_with_higher_msb(make_address(bm2->addr, 0)) < a2)
+ b_end = first_address_with_higher_msb(make_address(bm2->addr, 0));
else
b_end = a2;
tl_assert(a1 <= b_end && b_end <= a2);
@@ -879,15 +884,16 @@
for ( ; (bm2ref = VG_(OSetGen_Next)(bm->oset)) != 0; )
{
const struct bitmap1* bm1;
- unsigned b;
+ Addr a;
bm2 = bm2ref->bm2;
bm1 = &bm2->bm1;
- for (b = 0; b < ADDR0_COUNT; b++)
+ for (a = make_address(bm2->addr, 0);
+ a <= first_address_with_higher_msb(make_address(bm2->addr, 0)) - 1;
+ a++)
{
- const Addr a = make_address(bm2->addr, b);
- const Bool r = bm0_is_set(bm1->bm0_r, b) != 0;
- const Bool w = bm0_is_set(bm1->bm0_w, b) != 0;
+ const Bool r = bm0_is_set(bm1->bm0_r, address_lsb(a)) != 0;
+ const Bool w = bm0_is_set(bm1->bm0_w, address_lsb(a)) != 0;
if (r || w)
{
VG_(printf)("0x%08lx %c %c\n",
Modified: branches/DRDDEV/drd/drd_bitmap.h
===================================================================
--- branches/DRDDEV/drd/drd_bitmap.h 2008-07-10 15:44:39 UTC (rev 8419)
+++ branches/DRDDEV/drd/drd_bitmap.h 2008-07-12 16:01:07 UTC (rev 8420)
@@ -31,48 +31,80 @@
#include "pub_tool_libcbase.h"
-/*
- Bitmap representation. A bitmap is a data structure in which two bits are
- reserved per 32 bit address: one bit that indicates that the data at the
- specified address has been read, and one bit that indicates that the data has
- been written to.
-*/
+/* Bitmap representation. A bitmap is a data structure in which two bits are
+ * reserved per 32 bit address: one bit that indicates that the data at the
+ * specified address has been read, and one bit that indicates that the data
+ * has been written to.
+ */
+/* Client addresses are split into bitfields as follows:
+ * ------------------------------------------------------
+ * | Address MSB | Address LSB | Ignored bits |
+ * ------------------------------------------------------
+ * | Address MSB | UWord MSB | UWord LSB | Ignored bits |
+ * ------------------------------------------------------
+ */
-/* Macro definitions. */
-/* Number of bits assigned to the least significant component of an address. */
-#define ADDR0_BITS 14
+/* Address MSB / LSB split. */
-/* Number of addresses that can be described when only the least significant */
-/* part of an address varies. This is an unsigned integer. */
-#define ADDR0_COUNT ((UWord)1 << ADDR0_BITS)
-/* Mask that has to be applied to an address of type Addr in order to */
-/* compute the least significant part of an address split. */
-#define ADDR0_MASK (ADDR0_COUNT - 1)
+/** Number of least significant address bits that are ignored. */
+#define ADDR_IGNORED_BITS 2
+#define ADDR_IGNORED_MASK ((1U << ADDR_IGNORED_BITS) - 1U)
-/* Split an address of type Addr into least and most significant bits. */
+/** Round argument a up to a multiple of (1 << ADDR_GRANULARITY), and next
+ * shift it right ADDR_GRANULARITY bits. The expression below is optimized
+ * for the case where a is a constant.
+ */
+#define SCALED_SIZE(a) \
+ (((((a) - 1U) | ADDR_IGNORED_MASK) + 1U) >> ADDR_IGNORED_BITS)
+
+/** Number of bits assigned to the least significant component of an address.
+ */
+#define ADDR_LSB_BITS 14
+
+/** Mask that has to be applied to an address of type Addr in order to
+ * compute the least significant part of an address split, after having
+ * shifted the address bits ADDR_GRANULARITY to the right.
+ */
+#define ADDR_LSB_MASK (((UWord)1 << ADDR_LSB_BITS) - 1U)
+
+/** Compute least significant bits of an address of type Addr. */
static __inline__
-UWord address_lsb(const Addr a) { return a & ADDR0_MASK; }
+UWord address_lsb(const Addr a)
+{ return (a >> ADDR_IGNORED_BITS) & ADDR_LSB_MASK; }
+
+/** Compute most significant bits of an address of type Addr. */
static __inline__
-UWord address_msb(const Addr a) { return a >> ADDR0_BITS; }
+UWord address_msb(const Addr a)
+{ return a >> (ADDR_LSB_BITS + ADDR_IGNORED_BITS); }
static __inline__
-UWord first_address_with_higher_lsb(const Addr a)
-{ return (a | ADDR0_MASK) + 1; }
+Addr first_address_with_higher_msb(const Addr a)
+{
+ return ((a | ((ADDR_LSB_MASK << ADDR_IGNORED_BITS) | ADDR_IGNORED_MASK))
+ + 1U);
+}
-/** Convert LSB and MSB back into an address
+/** Convert LSB and MSB back into an address.
*
* @note It is assumed that sizeof(Addr) == sizeof(UWord).
*/
static __inline__
Addr make_address(const UWord a1, const UWord a0)
-{ return (a1 << ADDR0_BITS | a0); }
+{
+ return ((a1 << (ADDR_LSB_BITS + ADDR_IGNORED_BITS))
+ | (a0 << ADDR_IGNORED_BITS));
+}
+
+
+
+
/* Number of bits that fit in a variable of type UWord. */
-#define BITS_PER_UWORD (8UL*sizeof(UWord))
+#define BITS_PER_UWORD (8U * sizeof(UWord))
/* Log2 of BITS_PER_UWORD. */
#if defined(VGA_x86) || defined(VGA_ppc32)
@@ -83,29 +115,65 @@
#error Unknown platform.
#endif
-/* Number of UWord's needed to represent ADDR0_COUNT addresses. */
-#define BITMAP1_UWORD_COUNT (ADDR0_COUNT >> BITS_PER_BITS_PER_UWORD)
+/** Number of UWord's needed to store one bit per address LSB.
+ */
+#define BITMAP1_UWORD_COUNT (1U << (ADDR_LSB_BITS - BITS_PER_BITS_PER_UWORD))
-/* Highest bits of an address that fit into the same UWord of bm0[]. */
+/** Mask that has to be applied to an (Addr >> ADDR_IGNORED_BITS) expression
+ * in order to compute the least significant part of an UWord.
+ */
+#define UWORD_LSB_MASK (((UWord)1 << BITS_PER_BITS_PER_UWORD) - 1)
+
+/** Compute index into bm0[] array.
+ *
+ * @param a Address shifted right ADDR_IGNORED_BITS bits.
+ */
static __inline__
-Addr uword_msb(const Addr a)
-{ return a & ~(BITS_PER_UWORD - 1); }
+UWord uword_msb(const UWord a)
+{
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
+ tl_assert(a < (1U << ADDR_LSB_BITS));
+#endif
+ return a >> BITS_PER_BITS_PER_UWORD;
+}
+/** Return the least significant bits.
+ *
+ * @param a Address shifted right ADDR_IGNORED_BITS bits.
+ */
static __inline__
-UWord uword_index(const Addr a)
-{ return a >> BITS_PER_BITS_PER_UWORD; }
+UWord uword_lsb(const UWord a)
+{
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
+ tl_assert(a < (1U << ADDR_LSB_BITS));
+#endif
+ return a & UWORD_LSB_MASK;
+}
-/* Lowest bits of an address that fit into the same UWord of bm0[]. */
+/** Compute the highest address lower than a for which
+ * uword_lsb(address_lsb(a)) == 0.
+ *
+ * @param a Address.
+ */
static __inline__
-UWord uword_lsb(const Addr a)
-{ return ((a) & (BITS_PER_UWORD - 1)); }
+Addr first_address_with_same_uword_lsb(const Addr a)
+{
+ return (a & (~UWORD_LSB_MASK << ADDR_IGNORED_BITS));
+}
-/* Highest address that fits in the same UWord as a. */
+/** First address that will go in the UWord past the one 'a' goes in.
+ *
+ * @param a Address.
+ */
static __inline__
-UWord UWORD_HIGHEST_ADDRESS(const Addr a)
-{ return ((a) | (BITS_PER_UWORD - 1)); }
+Addr first_address_with_higher_uword_msb(const Addr a)
+{
+ return ((a | ((UWORD_LSB_MASK << ADDR_IGNORED_BITS) | ADDR_IGNORED_MASK))
+ + 1);
+}
+
/* Local variables. */
static ULong s_bitmap2_creation_count;
@@ -118,82 +186,88 @@
/*********************************************************************/
-/* Lowest level, corresponding to the lowest ADDR0_BITS of an address. */
+/* Lowest level, corresponding to the lowest ADDR_LSB_BITS of an address. */
struct bitmap1
{
UWord bm0_r[BITMAP1_UWORD_COUNT];
UWord bm0_w[BITMAP1_UWORD_COUNT];
};
-static __inline__ UWord bm0_mask(const Addr a)
+static __inline__ UWord bm0_mask(const UWord a)
{
+#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
+ tl_assert(address_msb(make_address(0, a)) == 0);
+#endif
return ((UWord)1 << uword_lsb(a));
}
-static __inline__ void bm0_set(UWord* bm0, const Addr a)
+/** Set the bit corresponding to address a in bitmap bm0. */
+static __inline__ void bm0_set(UWord* bm0, const UWord a)
{
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a < ADDR0_COUNT);
+ tl_assert(address_msb(make_address(0, a)) == 0);
#endif
- bm0[a >> BITS_PER_BITS_PER_UWORD] |= (UWord)1 << uword_lsb(a);
+ bm0[uword_msb(a)] |= (UWord)1 << uword_lsb(a);
}
-/** Set all of the addresses in range [ a1 .. a1 + size [ in bitmap bm0. */
+/** Set the bits corresponding to all of the addresses in range
+ * [ a .. a + size [ in bitmap bm0.
+ */
static __inline__ void bm0_set_range(UWord* bm0,
- const Addr a1, const SizeT size)
+ const UWord a, const SizeT size)
{
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a1 < ADDR0_COUNT);
tl_assert(size > 0);
- tl_assert(a1 + size <= ADDR0_COUNT);
- tl_assert(uword_msb(a1) == uword_msb(a1 + size - 1));
+ tl_assert(address_msb(make_address(0, a)) == 0);
+ tl_assert(address_msb(make_address(0, a + size)) == 0);
+ tl_assert(uword_msb(a) == uword_msb(a + size - 1));
#endif
- bm0[a1 >> BITS_PER_BITS_PER_UWORD]
- |= (((UWord)1 << size) - 1) << uword_lsb(a1);
+ bm0[uword_msb(a)]
+ |= (((UWord)1 << size) - 1) << uword_lsb(a);
}
-static __inline__ void bm0_clear(UWord* bm0, const Addr a)
+/** Clear the bit corresponding to address a in bitmap bm0. */
+static __inline__ void bm0_clear(UWord* bm0, const UWord a)
{
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a < ADDR0_COUNT);
+ tl_assert(address_msb(make_address(0, a)) == 0);
#endif
- bm0[a >> BITS_PER_BITS_PER_UWORD] &= ~((UWord)1 << uword_lsb(a));
+ bm0[uword_msb(a)] &= ~((UWord)1 << uword_lsb(a));
}
-/** Clear all of the addresses in range [ a1 .. a1 + size [ in bitmap bm0. */
+/** Clear all of the addresses in range [ a .. a + size [ in bitmap bm0. */
static __inline__ void bm0_clear_range(UWord* bm0,
- const Addr a1, const SizeT size)
+ const UWord a, const SizeT size)
{
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a1 < ADDR0_COUNT);
tl_assert(size > 0);
- tl_assert(a1 + size <= ADDR0_COUNT);
- tl_assert(uword_msb(a1) == uword_msb(a1 + size - 1));
+ tl_assert(address_msb(make_address(0, a)) == 0);
+ tl_assert(address_msb(make_address(0, a + size)) == 0);
+ tl_assert(uword_msb(a) == uword_msb(a + size - 1));
#endif
- bm0[a1 >> BITS_PER_BITS_PER_UWORD]
- &= ~(((UWord)1 << size) - 1) << uword_lsb(a1);
+ bm0[uword_msb(a)] &= ~(((UWord)1 << size) - 1) << uword_lsb(a);
}
-static __inline__ UWord bm0_is_set(const UWord* bm0, const Addr a)
+/** Test whether the bit corresponding to address a is set in bitmap bm0. */
+static __inline__ UWord bm0_is_set(const UWord* bm0, const UWord a)
{
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a < ADDR0_COUNT);
+ tl_assert(address_msb(make_address(0, a)) == 0);
#endif
- return (bm0[a >> BITS_PER_BITS_PER_UWORD] & ((UWord)1 << uword_lsb(a)));
+ return (bm0[uword_msb(a)] & ((UWord)1 << uword_lsb(a)));
}
-/** Return true if any of the bits [ a1 .. a1+size [ are set in bm0. */
+/** Return true if any of the bits [ a .. a+size [ are set in bm0. */
static __inline__ UWord bm0_is_any_set(const UWord* bm0,
- const Addr a1, const SizeT size)
+ const Addr a, const SizeT size)
{
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a1 < ADDR0_COUNT);
tl_assert(size > 0);
- tl_assert(a1 + size <= ADDR0_COUNT);
- tl_assert(uword_msb(a1) == uword_msb(a1 + size - 1));
+ tl_assert(address_msb(make_address(0, a)) == 0);
+ tl_assert(address_msb(make_address(0, a + size)) == 0);
+ tl_assert(uword_msb(a) == uword_msb(a + size - 1));
#endif
- return (bm0[a1 >> BITS_PER_BITS_PER_UWORD]
- & ((((UWord)1 << size) - 1) << uword_lsb(a1)));
+ return (bm0[uword_msb(a)] & ((((UWord)1 << size) - 1) << uword_lsb(a)));
}
@@ -206,7 +280,7 @@
/* Second level bitmap. */
struct bitmap2
{
- Addr addr; ///< address >> ADDR0_BITS
+ Addr addr; ///< address_msb(...)
int refcnt;
struct bitmap1 bm1;
};
@@ -214,7 +288,7 @@
/* One node of bitmap::oset. */
struct bitmap2ref
{
- Addr addr; ///< address >> ADDR0_BITS
+ Addr addr; ///< address_msb(...)
struct bitmap2* bm2;
};
@@ -387,7 +461,7 @@
* shared second level bitmap. The bitmap where the returned pointer points
* at may not be modified by the caller.
*
- * @param a1 client address shifted right by ADDR0_BITS.
+ * @param a1 client address shifted right by ADDR_LSB_BITS.
* @param bm bitmap pointer.
*/
static __inline__
@@ -414,7 +488,7 @@
/** Look up the address a1 in bitmap bm and return a pointer to a second
* level bitmap that is not shared and hence may be modified.
*
- * @param a1 client address shifted right by ADDR0_BITS.
+ * @param a1 client address shifted right by ADDR_LSB_BITS.
* @param bm bitmap pointer.
*/
static __inline__
@@ -460,7 +534,7 @@
/** Look up the address a1 in bitmap bm. The returned second level bitmap has
* reference count one and hence may be modified.
*
- * @param a1 client address shifted right by ADDR0_BITS.
+ * @param a1 client address shifted right by ADDR_LSB_BITS.
* @param bm bitmap pointer.
*/
static __inline__
@@ -511,7 +585,7 @@
/** Look up the address a1 in bitmap bm, and insert it if not found.
* The returned second level bitmap may not be modified.
*
- * @param a1 client address shifted right by ADDR0_BITS.
+ * @param a1 client address shifted right by ADDR_LSB_BITS.
* @param bm bitmap pointer.
*/
static __inline__
@@ -549,7 +623,7 @@
/** Look up the address a1 in bitmap bm, and insert it if not found.
* The returned second level bitmap may be modified.
*
- * @param a1 client address shifted right by ADDR0_BITS.
+ * @param a1 client address shifted right by ADDR_LSB_BITS.
* @param bm bitmap pointer.
*/
static __inline__
@@ -580,8 +654,10 @@
{
struct bitmap2* bm2;
- bm2 = bm2_lookup_or_insert_exclusive(bm, a1 >> ADDR0_BITS);
- bm0_set_range(bm2->bm1.bm0_r, a1 & ADDR0_MASK, size);
+ bm2 = bm2_lookup_or_insert_exclusive(bm, address_msb(a1));
+ bm0_set_range(bm2->bm1.bm0_r,
+ (a1 >> ADDR_IGNORED_BITS) & ADDR_LSB_MASK,
+ SCALED_SIZE(size));
}
static __inline__
@@ -590,8 +666,10 @@
{
struct bitmap2* bm2;
- bm2 = bm2_lookup_or_insert_exclusive(bm, a1 >> ADDR0_BITS);
- bm0_set_range(bm2->bm1.bm0_w, a1 & ADDR0_MASK, size);
+ bm2 = bm2_lookup_or_insert_exclusive(bm, address_msb(a1));
+ bm0_set_range(bm2->bm1.bm0_w,
+ (a1 >> ADDR_IGNORED_BITS) & ADDR_LSB_MASK,
+ SCALED_SIZE(size));
}
static __inline__
@@ -600,9 +678,12 @@
{
const struct bitmap2* bm2;
- bm2 = bm2_lookup(bm, a1 >> ADDR0_BITS);
+ bm2 = bm2_lookup(bm, address_msb(a1));
- return (bm2 && bm0_is_any_set(bm2->bm1.bm0_w, a1 & ADDR0_MASK, size));
+ return (bm2
+ && bm0_is_any_set(bm2->bm1.bm0_w,
+ (a1 >> ADDR_IGNORED_BITS) & ADDR_LSB_MASK,
+ SCALED_SIZE(size)));
}
static __inline__
@@ -611,12 +692,16 @@
{
const struct bitmap2* bm2;
- bm2 = bm2_lookup(bm, a1 >> ADDR0_BITS);
+ bm2 = bm2_lookup(bm, address_msb(a1));
if (bm2)
{
- if (bm0_is_any_set(bm2->bm1.bm0_r, a1 & ADDR0_MASK, size)
- | bm0_is_any_set(bm2->bm1.bm0_w, a1 & ADDR0_MASK, size))
+ if (bm0_is_any_set(bm2->bm1.bm0_r,
+ (a1 >> ADDR_IGNORED_BITS) & ADDR_LSB_MASK,
+ SCALED_SIZE(size))
+ | bm0_is_any_set(bm2->bm1.bm0_w,
+ (a1 >> ADDR_IGNORED_BITS) & ADDR_LSB_MASK,
+ SCALED_SIZE(size)))
{
return True;
}
Modified: branches/DRDDEV/drd/tests/drd_bitmap_test.c
===================================================================
--- branches/DRDDEV/drd/tests/drd_bitmap_test.c 2008-07-10 15:44:39 UTC (rev 8419)
+++ branches/DRDDEV/drd/tests/drd_bitmap_test.c 2008-07-12 16:01:07 UTC (rev 8420)
@@ -57,12 +57,15 @@
{ 0xffffULL, 1, eStore },
{ 0x0001ffffULL, 1, eLoad },
{ 0x00ffffffULL, 1, eLoad },
- { 0xfffffffeULL - ADDR0_COUNT, 1, eStore },
+ { 0xffffffffULL - (((1 << ADDR_LSB_BITS) + 1) << ADDR_IGNORED_BITS),
+ 1, eStore },
#if defined(VGP_amd64_linux) || defined(VGP_ppc64_linux) || defined(VGP_ppc64_aix5)
- { 0xffffffffULL - ADDR0_COUNT, 1, eStore },
+ { 0xffffffffULL - (1 << ADDR_LSB_BITS << ADDR_IGNORED_BITS),
+ 1, eStore },
{ 0xffffffffULL, 1, eStore },
{ 0x100000000ULL, 1, eStore },
- { -2ULL - ADDR0_COUNT, 1, eStore },
+ { -2ULL - (1 << ADDR_LSB_BITS << ADDR_IGNORED_BITS),
+ 1, eStore },
#endif
};
@@ -125,13 +128,13 @@
bm1 = bm_new();
bm2 = bm_new();
bm_access_load_1(bm1, 7);
- bm_access_load_1(bm2, ADDR0_COUNT + 7);
+ bm_access_load_1(bm2, make_address(1, address_lsb(7)));
assert(! bm_equal(bm1, bm2));
assert(! bm_equal(bm2, bm1));
bm_access_load_1(bm2, 7);
assert(! bm_equal(bm1, bm2));
assert(! bm_equal(bm2, bm1));
- bm_access_store_1(bm1, ADDR0_COUNT + 7);
+ bm_access_store_1(bm1, make_address(1, address_lsb(7)));
assert(! bm_equal(bm1, bm2));
assert(! bm_equal(bm2, bm1));
bm_delete(bm2);
@@ -145,16 +148,17 @@
struct bitmap* bm1;
struct bitmap* bm2;
+ const Addr lb = make_address(2, 0) - 2 * BITS_PER_UWORD;
+ const Addr ub = make_address(2, 0) + 2 * BITS_PER_UWORD;
+
assert(outer_loop_step >= 1);
assert(inner_loop_step >= 1);
bm1 = bm_new();
bm2 = bm_new();
- for (i = ADDR0_COUNT - 2 * BITS_PER_UWORD;
- i < ADDR0_COUNT + 2 * BITS_PER_UWORD;
- i += outer_loop_step)
+ for (i = lb; i < ub; i += outer_loop_step)
{
- for (j = i + 1; j < ADDR0_COUNT + 2 * BITS_PER_UWORD; j += inner_loop_step)
+ for (j = i + 1; j < ub; j += inner_loop_step)
{
bm_access_range_load(bm1, i, j);
bm_clear_load(bm1, i, j);
@@ -188,15 +192,13 @@
assert(bm_equal(bm1, bm2));
}
}
- bm_access_range_load(bm1, 0, 2 * ADDR0_COUNT + 2 * BITS_PER_UWORD);
- bm_access_range_store(bm1, 0, 2 * ADDR0_COUNT + 2 * BITS_PER_UWORD);
- bm_access_range_load(bm2, 0, 2 * ADDR0_COUNT + 2 * BITS_PER_UWORD);
- bm_access_range_store(bm2, 0, 2 * ADDR0_COUNT + 2 * BITS_PER_UWORD);
- for (i = ADDR0_COUNT - 2 * BITS_PER_UWORD;
- i < ADDR0_COUNT + 2 * BITS_PER_UWORD;
- i += outer_loop_step)
+ bm_access_range_load (bm1, 0, ub);
+ bm_access_range_store(bm1, 0, ub);
+ bm_access_range_load (bm2, 0, ub);
+ bm_access_range_store(bm2, 0, ub);
+ for (i = lb; i < ub; i += outer_loop_step)
{
- for (j = i + 1; j < ADDR0_COUNT + 2 * BITS_PER_UWORD; j += inner_loop_step)
+ for (j = i + 1; j < ub; j += inner_loop_step)
{
bm_clear_load(bm1, i, j);
bm_access_range_load(bm1, i, j);
Modified: branches/DRDDEV/drd/tests/tc16_byterace.stderr.exp
===================================================================
--- branches/DRDDEV/drd/tests/tc16_byterace.stderr.exp 2008-07-10 15:44:39 UTC (rev 8419)
+++ branches/DRDDEV/drd/tests/tc16_byterace.stderr.exp 2008-07-12 16:01:07 UTC (rev 8420)
@@ -1,6 +1,114 @@
Conflicting load by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[1],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[1],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[3],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[3],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[5],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[5],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[7],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[7],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[9],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:30)
+Location 0x........ is 0 bytes inside bytes[9],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1/1 at 0x........ size 1
at 0x........: main (tc16_byterace.c:34)
+Location 0x........ is 0 bytes inside bytes[1],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:34)
+Location 0x........ is 0 bytes inside bytes[1],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:34)
Location 0x........ is 0 bytes inside bytes[4],
a global variable declared at tc16_byterace.c:7
Other segment start (thread 0/2)
@@ -17,4 +125,22 @@
Other segment end (thread 0/2)
(thread finished, call stack no longer available)
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+Conflicting load by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:34)
+Location 0x........ is 0 bytes inside bytes[7],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1/1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:34)
+Location 0x........ is 0 bytes inside bytes[7],
+a global variable declared at tc16_byterace.c:7
+Other segment start (thread 0/2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 0/2)
+ (thread finished, call stack no longer available)
+
+ERROR SUMMARY: 16 errors from 16 contexts (suppressed: 0 from 0)
|
|
From: Darrell R. <dr...@us...> - 2008-07-12 08:43:32
|
I am out of the office until 07/21/2008. I will respond to your message when I return. Note: This is an automated response to your message Valgrind-developers Digest, Vol 26, Issue 39 sent on 7/11/08 22:23:32. This is the only notification you will receive while this person is away. |
|
From: Tom H. <th...@cy...> - 2008-07-12 03:05:21
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2008-07-12 03:15:02 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 345 tests, 60 stderr failures, 1 stdout failure, 29 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/origin1-yes (stderr) memcheck/tests/origin4-many (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/bug152022 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) massif/tests/alloc-fns-A (post) massif/tests/alloc-fns-B (post) massif/tests/basic (post) massif/tests/basic2 (post) massif/tests/big-alloc (post) massif/tests/culling1 (stderr) massif/tests/culling2 (stderr) massif/tests/custom_alloc (post) massif/tests/deep-A (post) massif/tests/deep-B (stderr) massif/tests/deep-B (post) massif/tests/deep-C (stderr) massif/tests/deep-C (post) massif/tests/deep-D (post) massif/tests/ignoring (post) massif/tests/insig (post) massif/tests/long-names (post) massif/tests/long-time (post) massif/tests/new-cpp (post) massif/tests/null (post) massif/tests/one (post) massif/tests/overloaded-new (post) massif/tests/peak (post) massif/tests/peak2 (stderr) massif/tests/peak2 (post) massif/tests/realloc (stderr) massif/tests/realloc (post) massif/tests/thresholds_0_0 (post) massif/tests/thresholds_0_10 (post) massif/tests/thresholds_10_0 (post) massif/tests/thresholds_10_10 (post) massif/tests/thresholds_5_0 (post) massif/tests/thresholds_5_10 (post) massif/tests/zero1 (post) massif/tests/zero2 (post) none/tests/blockfault (stderr) none/tests/mremap2 (stdout) none/tests/shell (stderr) none/tests/shell_valid1 (stderr) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) |
|
From: Tom H. <th...@cy...> - 2008-07-12 02:55:52
|
Nightly build on aston ( x86_64, Fedora Core 5 ) started at 2008-07-12 03:20:07 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 443 tests, 8 stderr failures, 1 stdout failure, 2 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) massif/tests/new-cpp (post) massif/tests/overloaded-new (post) none/tests/blockfault (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-07-12 02:43:26
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-07-12 03:05:05 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 437 tests, 5 stderr failures, 2 stdout failures, 2 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) massif/tests/new-cpp (post) massif/tests/overloaded-new (post) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-07-12 02:42:15
|
Nightly build on trojan ( x86_64, Fedora Core 6 ) started at 2008-07-12 03:25:05 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 441 tests, 8 stderr failures, 5 stdout failures, 2 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) massif/tests/new-cpp (post) massif/tests/overloaded-new (post) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap2 (stdout) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 441 tests, 8 stderr failures, 6 stdout failures, 2 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) massif/tests/new-cpp (post) massif/tests/overloaded-new (post) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap2 (stdout) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) drd/tests/tc08_hbl2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Jul 12 03:33:46 2008 --- new.short Sat Jul 12 03:42:22 2008 *************** *** 8,10 **** ! == 441 tests, 8 stderr failures, 6 stdout failures, 2 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 441 tests, 8 stderr failures, 5 stdout failures, 2 post failures == memcheck/tests/file_locking (stderr) *************** *** 24,26 **** helgrind/tests/tc22_exit_w_lock (stderr) - drd/tests/tc08_hbl2 (stdout) --- 24,25 ---- |
|
From: Tom H. <th...@cy...> - 2008-07-12 02:23:31
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-07-12 03:00:02 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 443 tests, 32 stderr failures, 3 stdout failures, 2 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) massif/tests/new-cpp (post) massif/tests/overloaded-new (post) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/atomic_var (stderr) |