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
(17) |
2
(11) |
3
(6) |
4
(6) |
|
5
(10) |
6
(5) |
7
(3) |
8
(7) |
9
(4) |
10
(4) |
11
(3) |
|
12
(3) |
13
(17) |
14
(18) |
15
(32) |
16
(22) |
17
(18) |
18
(10) |
|
19
(4) |
20
(3) |
21
(8) |
22
(15) |
23
(32) |
24
(28) |
25
(18) |
|
26
(20) |
27
(16) |
28
(28) |
29
(28) |
30
(27) |
|
|
|
From: <sv...@va...> - 2009-04-25 16:25:50
|
Author: bart
Date: 2009-04-25 17:25:45 +0100 (Sat, 25 Apr 2009)
New Revision: 9631
Log:
Updated list of bugs fixed in 3.5.0.
Modified:
trunk/NEWS
Modified: trunk/NEWS
===================================================================
--- trunk/NEWS 2009-04-25 15:10:44 UTC (rev 9630)
+++ trunk/NEWS 2009-04-25 16:25:45 UTC (rev 9631)
@@ -63,6 +63,8 @@
187048 DRD - the mutex attribute PTHREAD_PROCESS_SHARED is now
interpreted correctly.
188046 Removed a bashism from the configure script.
+189763 DRD - pthread_create@GLIBC_2.0() no longer triggers an assertion
+ failure.
|
|
From: Bart V. A. <bar...@gm...> - 2009-04-25 15:25:39
|
On Fri, Apr 24, 2009 at 3:30 AM, Nicholas Nethercote <n.n...@gm...> wrote: > After updating, I get these results: > > - drd/tests/tc19_shadowmem by itself takes 17s > - 'make regtest' takes 4:51 minutes > - '/usr/inb/perl tests/vg_regtest ...' takes 5:08 minutes > > 5 minutes to 17 seconds is a big improvement! Thanks for looking into it. Update: after another optimization the command "time perl tests/vg_regtest drd/tests/tc19_shadowmem" now completes in about three seconds (trunk revision 9629). Performance of DRD for other programs is now improved too, but only a few percent. As I already wrote, the tc19_shadowmem test program is an exception. Bart. |
|
From: <sv...@va...> - 2009-04-25 15:10:53
|
Author: bart Date: 2009-04-25 16:10:44 +0100 (Sat, 25 Apr 2009) New Revision: 9630 Log: Reran SPLASH-2 benchmark. Modified: trunk/drd/scripts/run-splash2 Modified: trunk/drd/scripts/run-splash2 =================================================================== --- trunk/drd/scripts/run-splash2 2009-04-25 11:40:09 UTC (rev 9629) +++ trunk/drd/scripts/run-splash2 2009-04-25 15:10:44 UTC (rev 9630) @@ -134,19 +134,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.09 11880 0.07 21888 0.65 41883 15.2 5.08 3.9 2.15 17 2.41 13 2.60 50 5.86 239 82 -# FFT 0.03 6560 0.02 15101 0.02 32176 10.7 8.36 17.0 2.48 92 2.88 113 3.13 156 5.43 90 41 -# LU, contiguous 0.07 3968 0.05 12176 0.06 28584 12.4 13.17 14.8 2.70 89 2.95 80 3.24 135 5.68 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 90 28 -# Radix 0.20 15008 0.11 23200 0.11 39592 13.1 4.22 23.6 2.23 59 2.67 54 2.87 282 6.23 222 56 -# Raytrace 0.66 206976 0.47 215168 0.47 232235 8.2 1.23 11.5 1.21 262 1.54 101 1.57 291 3.57 172 53 -# Water-n2 0.19 10560 0.09 26944 0.10 59704 11.4 5.65 22.0 1.83 3194 2.92 467 2.99 108 3.49 189 39 -# Water-sp 0.21 4312 0.10 13400 0.10 29496 9.8 12.20 20.7 2.63 254 3.14 64 3.42 99 5.13 183 34 +# Cholesky 0.09 11880 0.07 21888 0.65 41883 13.2 4.86 2.5 2.08 19 2.34 13 2.53 29 6.04 239 82 +# FFT 0.03 6560 0.02 15101 0.02 32176 21.0 7.92 20.5 2.41 118 2.81 53 3.06 120 5.42 90 41 +# LU, contiguous 0.07 3968 0.05 12176 0.06 28584 14.8 12.29 21.0 2.62 124 2.87 74 3.16 157 5.53 428 128 +# Ocean, contiguous 0.19 23208 0.18 31744 0.13 48888 6.7 3.75 10.6 2.09 69 2.52 43 2.71 264 5.95 90 28 +# Radix 0.20 15008 0.11 23200 0.11 39592 13.1 4.06 22.6 2.17 56 2.61 41 2.82 111 6.11 222 56 +# Raytrace 0.66 206976 0.47 215168 0.47 232235 8.4 1.22 10.8 1.20 272 1.53 88 1.56 211 3.79 172 53 +# Water-n2 0.19 10560 0.09 26944 0.10 59704 12.9 5.40 24.0 1.79 3793 2.92 621 2.95 109 3.54 189 39 +# Water-sp 0.21 4312 0.10 13400 0.10 29496 10.2 11.41 22.0 2.52 279 3.03 55 5.55 97 4.76 183 34 # ......................................................................................................................... -# geometric mean 0.41 13360 0.09 26319 0.12 48476 10.2 5.37 13.2 2.12 134 2.58 75 2.76 128 4.81 180 51 +# geometric mean 0.14 13360 0.09 26319 0.12 48476 11.9 5.21 14.0 2.06 154 2.53 64 2.88 117 5.05 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 edition), runlevel 3, gcc 4.3.1, 32 bit executables, valgrind trunk r8795. +# Software: openSUSE 11.0 (64-bit edition), runlevel 3, gcc 4.3.1, 32 bit executables, valgrind trunk r9629. ########################################################################################################################### #### |
|
From: <sv...@va...> - 2009-04-25 11:40:21
|
Author: bart
Date: 2009-04-25 12:40:09 +0100 (Sat, 25 Apr 2009)
New Revision: 9629
Log:
Added more error checking.
Modified:
trunk/drd/scripts/run-splash2
Modified: trunk/drd/scripts/run-splash2
===================================================================
--- trunk/drd/scripts/run-splash2 2009-04-25 11:39:20 UTC (rev 9628)
+++ trunk/drd/scripts/run-splash2 2009-04-25 11:40:09 UTC (rev 9629)
@@ -10,51 +10,67 @@
local tmp avg1 stddev1 avg2 stddev2 avg4 stddev4 p
tmp="/tmp/test-timing.$$"
+
rm -f "${tmp}"
-
p=1
test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
- read avg1 stddev1 vsz1 vszdev1 < "$tmp"
+ read avg1 stddev1 vsz1 vszdev1 rest < "$tmp"
echo "Average time: ${avg1} +/- ${stddev1} seconds." \
" VSZ: ${vsz1} +/- ${vszdev1} KB"
+ if [ "${rest}" != "" ]; then
+ echo "Internal error ($rest)"
+ exit 1
+ fi
+
+ rm -f "${tmp}"
p=2
test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
- read avg2 stddev2 vsz2 vszdev2 < "$tmp"
+ read avg2 stddev2 vsz2 vszdev2 rest < "$tmp"
echo "Average time: ${avg2} +/- ${stddev2} seconds." \
" VSZ: ${vsz2} +/- ${vszdev2} KB"
+ if [ "${rest}" != "" ]; then
+ echo "Internal error ($rest)"
+ exit 1
+ fi
+
+ rm -f "${tmp}"
p=4
test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
- read avg4 stddev4 vsz4 vszdev4 < "$tmp"
+ read avg4 stddev4 vsz4 vszdev4 rest < "$tmp"
echo "Average time: ${avg4} +/- ${stddev4} seconds." \
" VSZ: ${vsz4} +/- ${vszdev4} KB"
+ rm -f "$tmp"
+ if [ "${rest}" != "" ]; then
+ echo "Internal error ($rest)"
+ exit 1
+ fi
+
p=1
test_output="/dev/null" \
- print_runtime_ratio ${avg1} ${stddev1} ${vsz1} ${vszdev1} $VG --tool=none "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg1}" "${stddev1}" "${vsz1}" "${vszdev1}" "$VG" --tool=none "$@" -p${psep}${p} "${test_args}"
p=4
test_output="/dev/null" \
- print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} $VG --tool=none "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" "$VG" --tool=none "$@" -p${psep}${p} "${test_args}"
p=4
test_output="${1}-drd-with-stack-var-4.out" \
- print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} \
- $VG --tool=drd --check-stack-var=yes "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" \
+ "$VG" --tool=drd --check-stack-var=yes "$@" -p${psep}${p} "${test_args}"
p=4
test_output="${1}-drd-without-stack-var-4.out" \
- print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} \
- $VG --tool=drd --check-stack-var=no "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" \
+ "$VG" --tool=drd --check-stack-var=no "$@" -p${psep}${p} "${test_args}"
p=4
test_output="${1}-helgrind-4.out" \
- print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} $VG --tool=helgrind "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" "$VG" --tool=helgrind "$@" -p${psep}${p} "${test_args}"
echo ''
-
- rm -f "$tmp"
}
|
|
From: <sv...@va...> - 2009-04-25 11:39:32
|
Author: bart
Date: 2009-04-25 12:39:20 +0100 (Sat, 25 Apr 2009)
New Revision: 9628
Log:
Added more documentation and error checking.
Modified:
trunk/drd/scripts/measurement-functions
Modified: trunk/drd/scripts/measurement-functions
===================================================================
--- trunk/drd/scripts/measurement-functions 2009-04-25 08:26:24 UTC (rev 9627)
+++ trunk/drd/scripts/measurement-functions 2009-04-25 11:39:20 UTC (rev 9628)
@@ -37,8 +37,9 @@
fi
}
-## Read a stream of numbers from stdin (one per line), and print the average
-# and standard deviation.
+## Read zero or more lines from stdin, and print the average and standard
+# deviation per column. n is the number of lines, m the number of columns.
+# Each line must have the same number of columns.
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.0001?sqrt(d):0.01)}}'
}
@@ -54,6 +55,11 @@
return 1
fi
+ if ! { dump-acct -h 2>&1 | grep -q -w format; }; then
+ echo "Error: the installed version of dump-acct is not recent enough." >&2
+ return 1
+ fi
+
if [ -e /var/log/account/pacct ]; then
pacct=/var/log/account/pacct
elif [ -e /var/account/pacct ]; then
@@ -65,7 +71,8 @@
/usr/sbin/dump-acct "${pacct}" | \
grep -- "^$(basename "$1").*|v3|" | \
cut -f8 -d'|' | \
- tail -n 1
+ tail -n 1 | \
+ { read vsz; echo ${vsz:-0}; }
}
## Query the virtual memory size for the last invocation of command $1 from
|
|
From: <sv...@va...> - 2009-04-25 08:26:33
|
Author: bart
Date: 2009-04-25 09:26:24 +0100 (Sat, 25 Apr 2009)
New Revision: 9627
Log:
glibc 2.8 expected output updates.
Modified:
trunk/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8
trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8
trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8
Modified: trunk/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8
===================================================================
--- trunk/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8 2009-04-25 08:08:33 UTC (rev 9626)
+++ trunk/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8 2009-04-25 08:26:24 UTC (rev 9627)
@@ -29,6 +29,10 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
by 0x........: (below main)
+mutex 0x........ was first observed at:
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
+ by 0x........: nearly_main (tc09_bad_unlock.c:31)
+ by 0x........: main (tc09_bad_unlock.c:49)
---------------------
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
@@ -61,5 +65,9 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
by 0x........: (below main)
+mutex 0x........ was first observed at:
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
+ by 0x........: nearly_main (tc09_bad_unlock.c:31)
+ by 0x........: main (tc09_bad_unlock.c:50)
ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8
===================================================================
--- trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8 2009-04-25 08:08:33 UTC (rev 9626)
+++ trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8 2009-04-25 08:26:24 UTC (rev 9627)
@@ -86,19 +86,29 @@
Reader-writer lock not locked by calling thread: rwlock 0x.........
at 0x........: pthread_rwlock_unlock* (drd_pthread_intercepts.c:?)
by 0x........: main (tc20_verifywrap.c:212)
+rwlock 0x........ was first observed at:
+ at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc20_verifywrap.c:186)
---------------- sem_* ----------------
+Semaphore reinitialization: semaphore 0x........
+ at 0x........: sem_init* (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc20_verifywrap.c:231)
+semaphore 0x........ was first observed at:
+ at 0x........: sem_init* (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc20_verifywrap.c:228)
+
FIXME: can't figure out how to verify wrap of sem_destroy
Invalid semaphore: semaphore 0x........
+ at 0x........: sem_wait* (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc20_verifywrap.c:242)
semaphore 0x........ was first observed at:
at 0x........: sem_init* (drd_pthread_intercepts.c:?)
by 0x........: main (tc20_verifywrap.c:228)
- at 0x........: sem_wait* (drd_pthread_intercepts.c:?)
- by 0x........: main (tc20_verifywrap.c:242)
FIXME: can't figure out how to verify wrap of sem_post
@@ -106,10 +116,4 @@
------------ dealloc of mem holding locks ------------
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
- by 0x........: (within ld-?.?.so)
- by 0x........: exit (in /...libc...)
- by 0x........: (below main)
-
-ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8
===================================================================
--- trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8 2009-04-25 08:08:33 UTC (rev 9626)
+++ trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8 2009-04-25 08:26:24 UTC (rev 9627)
@@ -119,6 +119,13 @@
[1/1] semaphore_init 0x........ value 4294967295
[1/1] semaphore_init 0x........ value 0
+Semaphore reinitialization: semaphore 0x........
+ at 0x........: sem_init* (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc20_verifywrap.c:231)
+semaphore 0x........ was first observed at:
+ at 0x........: sem_init* (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc20_verifywrap.c:228)
+
FIXME: can't figure out how to verify wrap of sem_destroy
[1/1] semaphore_wait 0x........ value 0 -> 4294967295
@@ -137,61 +144,55 @@
------------ dealloc of mem holding locks ------------
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 0
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0
-[1/1] mutex_destroy error checking mutex 0x........
-
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
- by 0x........: (within ld-?.?.so)
- by 0x........: exit (in /...libc...)
- by 0x........: (below main)
-[1/1] mutex_destroy invalid mutex 0x........
+[1/1] mutex_destroy error checking mutex 0x........ rc 1 owner 1
+[1/1] mutex_destroy mutex 0x........ rc 0 owner 0
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock recursive mutex 0x........ rc 0 owner 1
[1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
[1/1] mutex_unlock recursive mutex 0x........ rc 1
-ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
|
|
From: <sv...@va...> - 2009-04-25 08:08:36
|
Author: bart
Date: 2009-04-25 09:08:33 +0100 (Sat, 25 Apr 2009)
New Revision: 9626
Log:
Yet another performance optimization.
Modified:
trunk/drd/drd_bitmap.c
Modified: trunk/drd/drd_bitmap.c
===================================================================
--- trunk/drd/drd_bitmap.c 2009-04-25 06:53:00 UTC (rev 9625)
+++ trunk/drd/drd_bitmap.c 2009-04-25 08:08:33 UTC (rev 9626)
@@ -156,20 +156,31 @@
b_start = (bm2->addr << ADDR0_BITS);
else
break;
- tl_assert(a1 <= b_start && b_start <= a2);
if ((bm2->addr << ADDR0_BITS) + ADDR0_COUNT < a2)
b_end = (bm2->addr << ADDR0_BITS) + ADDR0_COUNT;
else
b_end = a2;
- tl_assert(a1 <= b_end && b_end <= a2);
- tl_assert(b_start < b_end);
+
+ tl_assert(a1 <= b_start && b_start < b_end && b_end && b_end <= a2);
tl_assert((b_start & ADDR0_MASK) <= ((b_end - 1) & ADDR0_MASK));
-
- for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
+
+ if (b_end - b_start == ADDR0_COUNT)
{
- bm0_set(bm2->bm1.bm0_r, b0);
+ unsigned k;
+
+ for (k = 0; k < BITMAP1_UWORD_COUNT; k++)
+ {
+ bm2->bm1.bm0_r[k] = ~(UWord)0;
+ }
}
+ else
+ {
+ for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
+ {
+ bm0_set(bm2->bm1.bm0_r, b0);
+ }
+ }
}
}
@@ -243,20 +254,31 @@
b_start = (bm2->addr << ADDR0_BITS);
else
break;
- tl_assert(a1 <= b_start && b_start <= a2);
if ((bm2->addr << ADDR0_BITS) + ADDR0_COUNT < a2)
b_end = (bm2->addr << ADDR0_BITS) + ADDR0_COUNT;
else
b_end = a2;
- tl_assert(a1 <= b_end && b_end <= a2);
- tl_assert(b_start < b_end);
+
+ tl_assert(a1 <= b_start && b_start < b_end && b_end && b_end <= a2);
tl_assert((b_start & ADDR0_MASK) <= ((b_end - 1) & ADDR0_MASK));
-
- for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
+
+ if (b_end - b_start == ADDR0_COUNT)
{
- bm0_set(bm2->bm1.bm0_w, b0);
+ unsigned k;
+
+ for (k = 0; k < BITMAP1_UWORD_COUNT; k++)
+ {
+ bm2->bm1.bm0_w[k] = ~(UWord)0;
+ }
}
+ else
+ {
+ for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
+ {
+ bm0_set(bm2->bm1.bm0_w, b0);
+ }
+ }
}
}
@@ -500,8 +522,8 @@
#if 0
if (a2 - a1 >= ADDR0_COUNT)
- VG_(message)(Vg_DebugMsg, "bm_clear(bm = %p, a1 = 0x%lx, a2 = 0x%lx, delta = 0x%lx",
- bm, a1, a2, a2 - a1);
+ VG_(message)(Vg_DebugMsg, "bm_clear(bm = %p, a1 = 0x%lx, a2 = 0x%lx,"
+ " delta = 0x%lx", bm, a1, a2, a2 - a1);
#endif
for (b = a1; b < a2; b = b_next)
@@ -582,8 +604,8 @@
#if 0
if (a2 - a1 >= ADDR0_COUNT)
- VG_(message)(Vg_DebugMsg, "bm_clear_load(bm = %p, a1 = 0x%lx, a2 = 0x%lx, delta = 0x%lx",
- bm, a1, a2, a2 - a1);
+ VG_(message)(Vg_DebugMsg, "bm_clear_load(bm = %p, a1 = 0x%lx, a2 = 0x%lx,"
+ " delta = 0x%lx", bm, a1, a2, a2 - a1);
#endif
for (b = a1; b < a2; b = b_next)
@@ -668,8 +690,8 @@
#if 0
if (a2 - a1 >= ADDR0_COUNT)
- VG_(message)(Vg_DebugMsg, "bm_clear_store(bm = %p, a1 = 0x%lx, a2 = 0x%lx, delta = 0x%lx",
- bm, a1, a2, a2 - a1);
+ VG_(message)(Vg_DebugMsg, "bm_clear_store(bm = %p, a1 = 0x%lx, a2 = 0x%lx,"
+ " delta = 0x%lx", bm, a1, a2, a2 - a1);
#endif
for (b = a1; b < a2; b = b_next)
|
|
From: Bart V. A. <bar...@gm...> - 2009-04-25 08:01:43
|
Nightly build on georgia-tech-cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) started at 2009-04-25 02:21:44 EDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 407 tests, 36 stderr failures, 9 stdout failures, 0 post failures == exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) helgrind/tests/hg05_race2 (stderr) memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/origin5-bz2 (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/wrap8 (stderr) none/tests/linux/mremap (stderr) none/tests/linux/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) |
|
From: <sv...@va...> - 2009-04-25 06:53:09
|
Author: bart
Date: 2009-04-25 07:53:00 +0100 (Sat, 25 Apr 2009)
New Revision: 9625
Log:
Rearranged bm_access_range* functions.
Modified:
trunk/drd/drd_bitmap.c
Modified: trunk/drd/drd_bitmap.c
===================================================================
--- trunk/drd/drd_bitmap.c 2009-04-25 06:52:01 UTC (rev 9624)
+++ trunk/drd/drd_bitmap.c 2009-04-25 06:53:00 UTC (rev 9625)
@@ -112,6 +112,17 @@
const Addr a1, const Addr a2,
const BmAccessTypeT access_type)
{
+ tl_assert(access_type == eLoad || access_type == eStore);
+
+ if (access_type == eLoad)
+ return DRD_(bm_access_range_load)(bm, a1, a2);
+ else
+ return DRD_(bm_access_range_store)(bm, a1, a2);
+}
+
+void DRD_(bm_access_range_load)(struct bitmap* const bm,
+ const Addr a1, const Addr a2)
+{
Addr b, b_next;
tl_assert(bm);
@@ -155,29 +166,13 @@
tl_assert(b_start < b_end);
tl_assert((b_start & ADDR0_MASK) <= ((b_end - 1) & ADDR0_MASK));
- if (access_type == eLoad)
+ for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
{
- for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
- {
- bm0_set(bm2->bm1.bm0_r, b0);
- }
+ bm0_set(bm2->bm1.bm0_r, b0);
}
- else
- {
- for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
- {
- bm0_set(bm2->bm1.bm0_w, b0);
- }
- }
}
}
-void DRD_(bm_access_range_load)(struct bitmap* const bm,
- const Addr a1, const Addr a2)
-{
- DRD_(bm_access_range)(bm, a1, a2, eLoad);
-}
-
void DRD_(bm_access_load_1)(struct bitmap* const bm, const Addr a1)
{
bm_access_aligned_load(bm, a1, 1);
@@ -215,7 +210,54 @@
void DRD_(bm_access_range_store)(struct bitmap* const bm,
const Addr a1, const Addr a2)
{
- DRD_(bm_access_range)(bm, a1, a2, eStore);
+ Addr b, b_next;
+
+ tl_assert(bm);
+ tl_assert(a1 < a2);
+ /* The current implementation of bm_access_range does not work for the */
+ /* 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 + ADDR0_COUNT > a2);
+
+ for (b = a1; b < a2; b = b_next)
+ {
+ Addr b_start;
+ Addr b_end;
+ struct bitmap2* bm2;
+ SPLIT_ADDRESS(b);
+
+ b_next = (b & ~ADDR0_MASK) + ADDR0_COUNT;
+ if (b_next > a2)
+ {
+ b_next = a2;
+ }
+
+ bm2 = bm2_lookup_or_insert_exclusive(bm, b1);
+ tl_assert(bm2);
+
+ if ((bm2->addr << ADDR0_BITS) < a1)
+ b_start = a1;
+ else
+ if ((bm2->addr << ADDR0_BITS) < a2)
+ b_start = (bm2->addr << ADDR0_BITS);
+ else
+ break;
+ tl_assert(a1 <= b_start && b_start <= a2);
+
+ if ((bm2->addr << ADDR0_BITS) + ADDR0_COUNT < a2)
+ b_end = (bm2->addr << ADDR0_BITS) + ADDR0_COUNT;
+ else
+ b_end = a2;
+ tl_assert(a1 <= b_end && b_end <= a2);
+ tl_assert(b_start < b_end);
+ tl_assert((b_start & ADDR0_MASK) <= ((b_end - 1) & ADDR0_MASK));
+
+ for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
+ {
+ bm0_set(bm2->bm1.bm0_w, b0);
+ }
+ }
}
void DRD_(bm_access_store_1)(struct bitmap* const bm, const Addr a1)
@@ -255,9 +297,7 @@
Bool DRD_(bm_has)(struct bitmap* const bm, const Addr a1, const Addr a2,
const BmAccessTypeT access_type)
{
-#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
tl_assert(access_type == eLoad || access_type == eStore);
-#endif
if (access_type == eLoad)
return DRD_(bm_has_any_load)(bm, a1, a2);
@@ -646,7 +686,7 @@
b_next = (b & ~ADDR0_MASK) + ADDR0_COUNT;
if (b_next > a2)
{
- b_next = a2;
+ b_next = a2;
}
if (p2 == 0)
@@ -660,15 +700,15 @@
#endif
if (UWORD_LSB(c))
{
- Addr c_next = UWORD_MSB(c) + BITS_PER_UWORD;
- if (c_next > b_next)
- c_next = b_next;
+ Addr c_next = UWORD_MSB(c) + BITS_PER_UWORD;
+ if (c_next > b_next)
+ c_next = b_next;
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a1 <= b && b <= c && c < c_next && c_next <= b_next
- && b_next <= a2);
+ tl_assert(a1 <= b && b <= c && c < c_next && c_next <= b_next
+ && b_next <= a2);
#endif
- bm0_clear_range(p2->bm1.bm0_w, c & ADDR0_MASK, c_next - c);
- c = c_next;
+ bm0_clear_range(p2->bm1.bm0_w, c & ADDR0_MASK, c_next - c);
+ c = c_next;
}
/* If some UWords have to be cleared entirely, do this now. */
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
@@ -676,19 +716,19 @@
#endif
if (UWORD_LSB(c) == 0)
{
- const Addr c_next = UWORD_MSB(b_next);
+ const Addr c_next = UWORD_MSB(b_next);
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(UWORD_LSB(c) == 0);
- tl_assert(UWORD_LSB(c_next) == 0);
- tl_assert(a1 <= b && b <= c && c <= c_next && c_next <= b_next
- && b_next <= a2);
+ tl_assert(UWORD_LSB(c) == 0);
+ tl_assert(UWORD_LSB(c_next) == 0);
+ tl_assert(a1 <= b && b <= c && c <= c_next && c_next <= b_next
+ && b_next <= a2);
#endif
- if (c_next > c)
- {
- UWord idx = (c & ADDR0_MASK) >> BITS_PER_BITS_PER_UWORD;
- VG_(memset)(&p2->bm1.bm0_w[idx], 0, (c_next - c) / 8);
- c = c_next;
- }
+ if (c_next > c)
+ {
+ UWord idx = (c & ADDR0_MASK) >> BITS_PER_BITS_PER_UWORD;
+ VG_(memset)(&p2->bm1.bm0_w[idx], 0, (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. */
|
|
From: <sv...@va...> - 2009-04-25 06:52:10
|
Author: bart
Date: 2009-04-25 07:52:01 +0100 (Sat, 25 Apr 2009)
New Revision: 9624
Log:
bm0_clear_range
Modified:
trunk/drd/drd_bitmap.h
Modified: trunk/drd/drd_bitmap.h
===================================================================
--- trunk/drd/drd_bitmap.h 2009-04-25 03:17:22 UTC (rev 9623)
+++ trunk/drd/drd_bitmap.h 2009-04-25 06:52:01 UTC (rev 9624)
@@ -136,13 +136,20 @@
const Addr a1, const SizeT size)
{
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a1 < ADDR0_COUNT);
- tl_assert(size >= 0);
+ tl_assert(a1 <= ADDR0_COUNT);
tl_assert(a1 + size <= ADDR0_COUNT);
tl_assert(size == 0 || UWORD_MSB(a1) == UWORD_MSB(a1 + size - 1));
#endif
- bm0[a1 >> BITS_PER_BITS_PER_UWORD]
- &= ~((((UWord)1 << size) - 1) << UWORD_LSB(a1));
+ /*
+ * Note: although the expression below yields a correct result even if
+ * size == 0, do not touch bm0[] if size == 0 because this might otherwise
+ * cause an access of memory just past the end of the bm0[] array.
+ */
+ if (size > 0)
+ {
+ bm0[a1 >> BITS_PER_BITS_PER_UWORD]
+ &= ~((((UWord)1 << size) - 1) << UWORD_LSB(a1));
+ }
}
static __inline__ UWord bm0_is_set(const UWord* bm0, const Addr a)
|
|
From: <sv...@va...> - 2009-04-25 03:17:53
|
Author: njn
Date: 2009-04-25 04:17:22 +0100 (Sat, 25 Apr 2009)
New Revision: 9623
Log:
Merge r9621 (move int3-x86 into x86-linux/) from the DARWIN branch.
Added:
trunk/memcheck/tests/x86-linux/int3-x86.c
trunk/memcheck/tests/x86-linux/int3-x86.stderr.exp
trunk/memcheck/tests/x86-linux/int3-x86.stdout.exp
trunk/memcheck/tests/x86-linux/int3-x86.vgtest
Removed:
trunk/memcheck/tests/x86/int3-x86.c
trunk/memcheck/tests/x86/int3-x86.stderr.exp
trunk/memcheck/tests/x86/int3-x86.stdout.exp
trunk/memcheck/tests/x86/int3-x86.vgtest
Modified:
trunk/memcheck/tests/x86-linux/Makefile.am
trunk/memcheck/tests/x86/Makefile.am
Modified: trunk/memcheck/tests/x86/Makefile.am
===================================================================
--- trunk/memcheck/tests/x86/Makefile.am 2009-04-25 03:11:13 UTC (rev 9622)
+++ trunk/memcheck/tests/x86/Makefile.am 2009-04-25 03:17:22 UTC (rev 9623)
@@ -13,7 +13,6 @@
$(addsuffix .stderr.exp,$(INSN_TESTS)) \
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
- int3-x86.vgtest int3-x86.stderr.exp int3-x86.stdout.exp \
pushfpopf.stderr.exp pushfpopf.stdout.exp pushfpopf.vgtest \
pushfw_x86.vgtest pushfw_x86.stdout.exp pushfw_x86.stderr.exp \
pushpopmem.stderr.exp pushpopmem.stdout.exp pushpopmem.vgtest \
@@ -28,7 +27,6 @@
check_PROGRAMS = \
bug152022 \
espindola2 \
- int3-x86 \
fpeflags \
fprem \
fxsave \
Deleted: trunk/memcheck/tests/x86/int3-x86.c
===================================================================
--- trunk/memcheck/tests/x86/int3-x86.c 2009-04-25 03:11:13 UTC (rev 9622)
+++ trunk/memcheck/tests/x86/int3-x86.c 2009-04-25 03:17:22 UTC (rev 9623)
@@ -1,52 +0,0 @@
-
-#undef _GNU_SOURCE
-#define _GNU_SOURCE 1
-
-#include <signal.h>
-#include <stdio.h>
-#include <sys/ucontext.h>
-
-static char* eip_at_sig = NULL;
-
-static void int_handler(int signum, siginfo_t *si, void *uc_arg)
-{
- ucontext_t *uc = (ucontext_t *)uc_arg;
- /* Note that uc->uc_mcontext is an embedded struct, not a pointer */
- mcontext_t *mc = &(uc->uc_mcontext);
- void *pc = (void*)mc->gregs[REG_EIP];
- printf("in int_handler, EIP is ...\n");
- eip_at_sig = pc;
-}
-
-static void register_handler(int sig, void *handler)
-{
- struct sigaction sa;
- sa.sa_flags = SA_RESTART | SA_SIGINFO;
- sigfillset(&sa.sa_mask);
- sa.sa_sigaction = handler;
- sigaction(sig, &sa, NULL);
-}
-
-int main(void) {
- char *intaddr = NULL;
- puts("main");
- register_handler(SIGTRAP, int_handler);
- asm volatile(
- "movl $zz_int, %%edx\n"
- "mov %%edx, %0\n"
- "zz_int:\n"
- "int $3\n"
- : /* no outputs */
- : "m" (intaddr) /* input: address of var to store target addr to */
- : /* clobbers */ "edx"
- );
- /* intaddr is the address of the int 3 insn. eip_at_sig is the PC
- after the exception, which should be the next insn along.
- Hence: */
- if (intaddr != NULL && eip_at_sig != NULL
- && eip_at_sig == intaddr+1)
- printf("PASS\n");
- else
- printf("FAIL\n");
- return 0;
-}
Deleted: trunk/memcheck/tests/x86/int3-x86.stderr.exp
===================================================================
Deleted: trunk/memcheck/tests/x86/int3-x86.stdout.exp
===================================================================
--- trunk/memcheck/tests/x86/int3-x86.stdout.exp 2009-04-25 03:11:13 UTC (rev 9622)
+++ trunk/memcheck/tests/x86/int3-x86.stdout.exp 2009-04-25 03:17:22 UTC (rev 9623)
@@ -1,3 +0,0 @@
-main
-in int_handler, EIP is ...
-PASS
Deleted: trunk/memcheck/tests/x86/int3-x86.vgtest
===================================================================
--- trunk/memcheck/tests/x86/int3-x86.vgtest 2009-04-25 03:11:13 UTC (rev 9622)
+++ trunk/memcheck/tests/x86/int3-x86.vgtest 2009-04-25 03:17:22 UTC (rev 9623)
@@ -1,2 +0,0 @@
-prog: int3-x86
-vgopts: -q
Modified: trunk/memcheck/tests/x86-linux/Makefile.am
===================================================================
--- trunk/memcheck/tests/x86-linux/Makefile.am 2009-04-25 03:11:13 UTC (rev 9622)
+++ trunk/memcheck/tests/x86-linux/Makefile.am 2009-04-25 03:17:22 UTC (rev 9623)
@@ -9,6 +9,7 @@
EXTRA_DIST = $(noinst_SCRIPTS) \
bug133694.vgtest bug133694.stderr.exp bug133694.stdout.exp \
+ int3-x86.vgtest int3-x86.stderr.exp int3-x86.stdout.exp \
scalar.stderr.exp scalar.vgtest \
scalar_fork.stderr.exp scalar_fork.vgtest \
scalar_exit_group.stderr.exp \
@@ -19,6 +20,7 @@
check_PROGRAMS = \
bug133694 \
+ int3-x86 \
scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork
Copied: trunk/memcheck/tests/x86-linux/int3-x86.c (from rev 9621, branches/DARWIN/memcheck/tests/x86-linux/int3-x86.c)
===================================================================
--- trunk/memcheck/tests/x86-linux/int3-x86.c (rev 0)
+++ trunk/memcheck/tests/x86-linux/int3-x86.c 2009-04-25 03:17:22 UTC (rev 9623)
@@ -0,0 +1,52 @@
+
+#undef _GNU_SOURCE
+#define _GNU_SOURCE 1
+
+#include <signal.h>
+#include <stdio.h>
+#include <sys/ucontext.h>
+
+static char* eip_at_sig = NULL;
+
+static void int_handler(int signum, siginfo_t *si, void *uc_arg)
+{
+ ucontext_t *uc = (ucontext_t *)uc_arg;
+ /* Note that uc->uc_mcontext is an embedded struct, not a pointer */
+ mcontext_t *mc = &(uc->uc_mcontext);
+ void *pc = (void*)mc->gregs[REG_EIP];
+ printf("in int_handler, EIP is ...\n");
+ eip_at_sig = pc;
+}
+
+static void register_handler(int sig, void *handler)
+{
+ struct sigaction sa;
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+ sigfillset(&sa.sa_mask);
+ sa.sa_sigaction = handler;
+ sigaction(sig, &sa, NULL);
+}
+
+int main(void) {
+ char *intaddr = NULL;
+ puts("main");
+ register_handler(SIGTRAP, int_handler);
+ asm volatile(
+ "movl $zz_int, %%edx\n"
+ "mov %%edx, %0\n"
+ "zz_int:\n"
+ "int $3\n"
+ : /* no outputs */
+ : "m" (intaddr) /* input: address of var to store target addr to */
+ : /* clobbers */ "edx"
+ );
+ /* intaddr is the address of the int 3 insn. eip_at_sig is the PC
+ after the exception, which should be the next insn along.
+ Hence: */
+ if (intaddr != NULL && eip_at_sig != NULL
+ && eip_at_sig == intaddr+1)
+ printf("PASS\n");
+ else
+ printf("FAIL\n");
+ return 0;
+}
Copied: trunk/memcheck/tests/x86-linux/int3-x86.stderr.exp (from rev 9621, branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stderr.exp)
===================================================================
Copied: trunk/memcheck/tests/x86-linux/int3-x86.stdout.exp (from rev 9621, branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stdout.exp)
===================================================================
--- trunk/memcheck/tests/x86-linux/int3-x86.stdout.exp (rev 0)
+++ trunk/memcheck/tests/x86-linux/int3-x86.stdout.exp 2009-04-25 03:17:22 UTC (rev 9623)
@@ -0,0 +1,3 @@
+main
+in int_handler, EIP is ...
+PASS
Copied: trunk/memcheck/tests/x86-linux/int3-x86.vgtest (from rev 9621, branches/DARWIN/memcheck/tests/x86-linux/int3-x86.vgtest)
===================================================================
--- trunk/memcheck/tests/x86-linux/int3-x86.vgtest (rev 0)
+++ trunk/memcheck/tests/x86-linux/int3-x86.vgtest 2009-04-25 03:17:22 UTC (rev 9623)
@@ -0,0 +1,2 @@
+prog: int3-x86
+vgopts: -q
|
|
From: <sv...@va...> - 2009-04-25 03:11:24
|
Author: njn
Date: 2009-04-25 04:11:13 +0100 (Sat, 25 Apr 2009)
New Revision: 9622
Log:
Clean up some comments.
Modified:
branches/DARWIN/coregrind/Makefile.am
Modified: branches/DARWIN/coregrind/Makefile.am
===================================================================
--- branches/DARWIN/coregrind/Makefile.am 2009-04-25 03:01:33 UTC (rev 9621)
+++ branches/DARWIN/coregrind/Makefile.am 2009-04-25 03:11:13 UTC (rev 9622)
@@ -119,7 +119,8 @@
endif
# Mach RPC interface definitions
-# DDD: these ones aren't used...
+# Here are some more .defs files that are not used, but could be in the
+# future:
# clock.defs \
# clock_priv.defs \
# clock_reply.defs \
@@ -134,21 +135,6 @@
# processor.defs \
# processor_set.defs \
#
-# mach_vm:
-# - mach_vm_protect is used in debugstub-darwin.c.
-# - mach_vm_region_recurse is used in aspacemgr-linux.c
-#
-# task:
-# - thread_create_running is used in debugstub-darwin.c
-# - semaphore_create is used in sema.c, syswrap-darwin.c
-# - semaphore_destroy is used in sema.c, syswrap-darwin.c
-#
-# thread_act:
-# - thread_get_state is used in scheduler.c
-# - thread_abort is used in debugstub-darwin.c
-#
-# vm_map:
-# - vm_deallocate is used in syswrap-darwin.c
if VGCONF_OS_IS_DARWIN
mach_defs = \
mach_vm.defs \
@@ -346,21 +332,6 @@
# Note that the *User.c files are generated using 'mig' from $mach_defs
# above.
- # DDD: these ones aren't generated (see above)...
- # m_mach/clockUser.c \
- # m_mach/clock_privUser.c \
- # m_mach/clock_replyUser.c \
- # m_mach/excUser.c \
- # m_mach/host_privUser.c \
- # m_mach/host_securityUser.c \
- # m_mach/ledgerUser.c \
- # m_mach/lock_setUser.c \
- # m_mach/mach_hostUser.c \
- # m_mach/mach_portUser.c \
- # m_mach/notifyUser.c \
- # m_mach/processorUser.c \
- # m_mach/processor_setUser.c \
- #
COREGRIND_DARWIN_SOURCE = \
m_aspacemgr/aspacemgr-linux.c \
m_debuginfo/readdwarf.c \
|
|
From: <sv...@va...> - 2009-04-25 03:01:58
|
Author: njn
Date: 2009-04-25 04:01:33 +0100 (Sat, 25 Apr 2009)
New Revision: 9621
Log:
Move int3-x86 into x86-linux/.
Added:
branches/DARWIN/memcheck/tests/x86-linux/int3-x86.c
branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stderr.exp
branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stdout.exp
branches/DARWIN/memcheck/tests/x86-linux/int3-x86.vgtest
Removed:
branches/DARWIN/memcheck/tests/x86/int3-x86.c
branches/DARWIN/memcheck/tests/x86/int3-x86.stderr.exp
branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp
branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest
Modified:
branches/DARWIN/memcheck/tests/x86-linux/Makefile.am
branches/DARWIN/memcheck/tests/x86/Makefile.am
Modified: branches/DARWIN/memcheck/tests/x86/Makefile.am
===================================================================
--- branches/DARWIN/memcheck/tests/x86/Makefile.am 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86/Makefile.am 2009-04-25 03:01:33 UTC (rev 9621)
@@ -13,7 +13,6 @@
$(addsuffix .stderr.exp,$(INSN_TESTS)) \
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
- int3-x86.vgtest int3-x86.stderr.exp int3-x86.stdout.exp \
pushfpopf.stderr.exp pushfpopf.stdout.exp pushfpopf.vgtest \
pushfw_x86.vgtest pushfw_x86.stdout.exp pushfw_x86.stderr.exp \
pushpopmem.stderr.exp pushpopmem.stdout.exp pushpopmem.vgtest \
@@ -39,13 +38,6 @@
tronical \
xor-undef-x86
-# DDD: not sure if these ones should work on Darwin or not... if not, should
-# be moved into x86-linux/.
-if ! VGCONF_OS_IS_DARWIN
- check_PROGRAMS += \
- int3-x86
-endif
-
AM_CFLAGS += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
AM_CXXFLAGS += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
AM_CCASFLAGS += @FLAG_M32@
Deleted: branches/DARWIN/memcheck/tests/x86/int3-x86.c
===================================================================
--- branches/DARWIN/memcheck/tests/x86/int3-x86.c 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86/int3-x86.c 2009-04-25 03:01:33 UTC (rev 9621)
@@ -1,52 +0,0 @@
-
-#undef _GNU_SOURCE
-#define _GNU_SOURCE 1
-
-#include <signal.h>
-#include <stdio.h>
-#include <sys/ucontext.h>
-
-static char* eip_at_sig = NULL;
-
-static void int_handler(int signum, siginfo_t *si, void *uc_arg)
-{
- ucontext_t *uc = (ucontext_t *)uc_arg;
- /* Note that uc->uc_mcontext is an embedded struct, not a pointer */
- mcontext_t *mc = &(uc->uc_mcontext);
- void *pc = (void*)mc->gregs[REG_EIP];
- printf("in int_handler, EIP is ...\n");
- eip_at_sig = pc;
-}
-
-static void register_handler(int sig, void *handler)
-{
- struct sigaction sa;
- sa.sa_flags = SA_RESTART | SA_SIGINFO;
- sigfillset(&sa.sa_mask);
- sa.sa_sigaction = handler;
- sigaction(sig, &sa, NULL);
-}
-
-int main(void) {
- char *intaddr = NULL;
- puts("main");
- register_handler(SIGTRAP, int_handler);
- asm volatile(
- "movl $zz_int, %%edx\n"
- "mov %%edx, %0\n"
- "zz_int:\n"
- "int $3\n"
- : /* no outputs */
- : "m" (intaddr) /* input: address of var to store target addr to */
- : /* clobbers */ "edx"
- );
- /* intaddr is the address of the int 3 insn. eip_at_sig is the PC
- after the exception, which should be the next insn along.
- Hence: */
- if (intaddr != NULL && eip_at_sig != NULL
- && eip_at_sig == intaddr+1)
- printf("PASS\n");
- else
- printf("FAIL\n");
- return 0;
-}
Deleted: branches/DARWIN/memcheck/tests/x86/int3-x86.stderr.exp
===================================================================
Deleted: branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp
===================================================================
--- branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp 2009-04-25 03:01:33 UTC (rev 9621)
@@ -1,3 +0,0 @@
-main
-in int_handler, EIP is ...
-PASS
Deleted: branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest
===================================================================
--- branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest 2009-04-25 03:01:33 UTC (rev 9621)
@@ -1,2 +0,0 @@
-prog: int3-x86
-vgopts: -q
Modified: branches/DARWIN/memcheck/tests/x86-linux/Makefile.am
===================================================================
--- branches/DARWIN/memcheck/tests/x86-linux/Makefile.am 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86-linux/Makefile.am 2009-04-25 03:01:33 UTC (rev 9621)
@@ -9,6 +9,7 @@
EXTRA_DIST = $(noinst_SCRIPTS) \
bug133694.vgtest bug133694.stderr.exp bug133694.stdout.exp \
+ int3-x86.vgtest int3-x86.stderr.exp int3-x86.stdout.exp \
scalar.stderr.exp scalar.vgtest \
scalar_fork.stderr.exp scalar_fork.vgtest \
scalar_exit_group.stderr.exp \
@@ -19,6 +20,7 @@
check_PROGRAMS = \
bug133694 \
+ int3-x86 \
scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork
Copied: branches/DARWIN/memcheck/tests/x86-linux/int3-x86.c (from rev 9616, branches/DARWIN/memcheck/tests/x86/int3-x86.c)
===================================================================
--- branches/DARWIN/memcheck/tests/x86-linux/int3-x86.c (rev 0)
+++ branches/DARWIN/memcheck/tests/x86-linux/int3-x86.c 2009-04-25 03:01:33 UTC (rev 9621)
@@ -0,0 +1,52 @@
+
+#undef _GNU_SOURCE
+#define _GNU_SOURCE 1
+
+#include <signal.h>
+#include <stdio.h>
+#include <sys/ucontext.h>
+
+static char* eip_at_sig = NULL;
+
+static void int_handler(int signum, siginfo_t *si, void *uc_arg)
+{
+ ucontext_t *uc = (ucontext_t *)uc_arg;
+ /* Note that uc->uc_mcontext is an embedded struct, not a pointer */
+ mcontext_t *mc = &(uc->uc_mcontext);
+ void *pc = (void*)mc->gregs[REG_EIP];
+ printf("in int_handler, EIP is ...\n");
+ eip_at_sig = pc;
+}
+
+static void register_handler(int sig, void *handler)
+{
+ struct sigaction sa;
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+ sigfillset(&sa.sa_mask);
+ sa.sa_sigaction = handler;
+ sigaction(sig, &sa, NULL);
+}
+
+int main(void) {
+ char *intaddr = NULL;
+ puts("main");
+ register_handler(SIGTRAP, int_handler);
+ asm volatile(
+ "movl $zz_int, %%edx\n"
+ "mov %%edx, %0\n"
+ "zz_int:\n"
+ "int $3\n"
+ : /* no outputs */
+ : "m" (intaddr) /* input: address of var to store target addr to */
+ : /* clobbers */ "edx"
+ );
+ /* intaddr is the address of the int 3 insn. eip_at_sig is the PC
+ after the exception, which should be the next insn along.
+ Hence: */
+ if (intaddr != NULL && eip_at_sig != NULL
+ && eip_at_sig == intaddr+1)
+ printf("PASS\n");
+ else
+ printf("FAIL\n");
+ return 0;
+}
Copied: branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stderr.exp (from rev 9616, branches/DARWIN/memcheck/tests/x86/int3-x86.stderr.exp)
===================================================================
Copied: branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stdout.exp (from rev 9616, branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp)
===================================================================
--- branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stdout.exp (rev 0)
+++ branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stdout.exp 2009-04-25 03:01:33 UTC (rev 9621)
@@ -0,0 +1,3 @@
+main
+in int_handler, EIP is ...
+PASS
Copied: branches/DARWIN/memcheck/tests/x86-linux/int3-x86.vgtest (from rev 9616, branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest)
===================================================================
--- branches/DARWIN/memcheck/tests/x86-linux/int3-x86.vgtest (rev 0)
+++ branches/DARWIN/memcheck/tests/x86-linux/int3-x86.vgtest 2009-04-25 03:01:33 UTC (rev 9621)
@@ -0,0 +1,2 @@
+prog: int3-x86
+vgopts: -q
|
|
From: Tom H. <th...@cy...> - 2009-04-25 02:44:37
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2009-04-25 03:05:04 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 478 tests, 0 stderr failures, 0 stdout failures, 0 post failures == |
|
From: Tom H. <th...@cy...> - 2009-04-25 02:28:17
|
Nightly build on mg ( x86_64, Fedora 9 ) started at 2009-04-25 03:10:04 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 == 484 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) |
|
From: Robert O'C. <ro...@oc...> - 2009-04-25 00:55:07
|
You might want to check the alignment of the stack pointer. We had some weird issues with Tracemonkey performance varying based on how you spawned the test, which turned out to be due to the stack pointer getting different initial values in different runs. Rob -- "He was pierced for our transgressions, he was crushed for our iniquities; the punishment that brought us peace was upon him, and by his wounds we are healed. We all, like sheep, have gone astray, each of us has turned to his own way; and the LORD has laid on him the iniquity of us all." [Isaiah 53:5-6] |
|
From: <sv...@va...> - 2009-04-25 00:07:47
|
Author: njn
Date: 2009-04-25 01:07:37 +0100 (Sat, 25 Apr 2009)
New Revision: 9620
Log:
Merge r9619 (fix more_x86_fp on Darwin) from the DARWIN branch.
Modified:
trunk/memcheck/tests/x86/more_x86_fp.c
Modified: trunk/memcheck/tests/x86/more_x86_fp.c
===================================================================
--- trunk/memcheck/tests/x86/more_x86_fp.c 2009-04-25 00:06:01 UTC (rev 9619)
+++ trunk/memcheck/tests/x86/more_x86_fp.c 2009-04-25 00:07:37 UTC (rev 9620)
@@ -96,8 +96,8 @@
la = a;
printf("(float)%f = %f\n", a, fa);
printf("(long double)%f = %Lf\n", a, la);
- printf("a=%016Lx\n", *(long long *)&a);
- printf("la=%016Lx %04x\n", *(long long *)&la,
+ printf("a=%016llx\n", *(long long *)&a);
+ printf("la=%016llx %04x\n", *(long long *)&la,
*(unsigned short *)((char *)(&la) + 8));
/* test all roundings */
@@ -112,7 +112,7 @@
asm volatile ("fldcw %0" : : "m" (fpuc));
printf("(short)a = %d\n", wa);
printf("(int)a = %d\n", ia);
- printf("(int64_t)a = %Ld\n", lla);
+ printf("(int64_t)a = %lld\n", lla);
printf("rint(a) = %f\n", ra);
}
}
|
|
From: <sv...@va...> - 2009-04-25 00:06:12
|
Author: njn
Date: 2009-04-25 01:06:01 +0100 (Sat, 25 Apr 2009)
New Revision: 9619
Log:
Use %llx instead of %Lx, which Darwin gets wrong. more_x86_fp now passes.
Modified:
branches/DARWIN/memcheck/tests/x86/more_x86_fp.c
Modified: branches/DARWIN/memcheck/tests/x86/more_x86_fp.c
===================================================================
--- branches/DARWIN/memcheck/tests/x86/more_x86_fp.c 2009-04-24 23:55:10 UTC (rev 9618)
+++ branches/DARWIN/memcheck/tests/x86/more_x86_fp.c 2009-04-25 00:06:01 UTC (rev 9619)
@@ -96,8 +96,8 @@
la = a;
printf("(float)%f = %f\n", a, fa);
printf("(long double)%f = %Lf\n", a, la);
- printf("a=%016Lx\n", *(long long *)&a);
- printf("la=%016Lx %04x\n", *(long long *)&la,
+ printf("a=%016llx\n", *(long long *)&a);
+ printf("la=%016llx %04x\n", *(long long *)&la,
*(unsigned short *)((char *)(&la) + 8));
/* test all roundings */
@@ -112,7 +112,7 @@
asm volatile ("fldcw %0" : : "m" (fpuc));
printf("(short)a = %d\n", wa);
printf("(int)a = %d\n", ia);
- printf("(int64_t)a = %Ld\n", lla);
+ printf("(int64_t)a = %lld\n", lla);
printf("rint(a) = %f\n", ra);
}
}
|