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
(15) |
|
2
(24) |
3
(16) |
4
(17) |
5
(11) |
6
(20) |
7
(11) |
8
(15) |
|
9
(10) |
10
(9) |
11
(10) |
12
(24) |
13
(16) |
14
(15) |
15
(8) |
|
16
(13) |
17
(15) |
18
(35) |
19
(11) |
20
(10) |
21
(11) |
22
(9) |
|
23
(10) |
24
(9) |
25
(9) |
26
(9) |
27
(9) |
28
(12) |
29
(16) |
|
30
(12) |
|
|
|
|
|
|
|
From: Josef W. <Jos...@gm...> - 2006-04-02 23:28:55
|
On Sunday 02 April 2006 23:46, Nicholas Nethercote wrote:
> On Sun, 2 Apr 2006, Julian Seward wrote:
>
> >> Are you fine with the added post-test check in the regression
> >> tests?
> >
> > It looks OK to me, but it would be good if Nick could have a look
> > too ("Patch: add a post-test check to the regtest script") as the
> > original perl script author.
>
> I'll take a look at merging it tonight. I wonder if having a
> posttest_filter (like the std{err,out}_filters) would be useful too.
I thought about it, but it is not needed.
The post-test script can do all the filtering itself (and use an
external filter script, too).
Eg. for callgrind, the post-test would call callgrind_annotate on the
generated data, filter the call relationships and call counts, and
print them out.
Even support for an expected output of the post-test is not strictly needed,
as the script could check this for itself. But when the check fails, IMHO
it is good to be able to look at the wrong output.
Thanks,
Josef
|
|
From: Julian S. <js...@ac...> - 2006-04-02 22:41:00
|
> Log: > Callgrind: add 4 regression tests Excellent. J |
|
From: <sv...@va...> - 2006-04-02 22:23:35
|
Author: weidendo
Date: 2006-04-02 23:23:27 +0100 (Sun, 02 Apr 2006)
New Revision: 5816
Log:
Callgrind: add 4 regression tests
The simwork tests check different cache simulator
options/modes. These tests should be extended to
check for the produced call graph.
The threads check tests the callgrind mode where
counts are aggregated separate per thread.
Added:
trunk/callgrind/tests/simwork.c
trunk/callgrind/tests/simwork1.stderr.exp
trunk/callgrind/tests/simwork1.stdout.exp
trunk/callgrind/tests/simwork1.vgtest
trunk/callgrind/tests/simwork2.stderr.exp
trunk/callgrind/tests/simwork2.stdout.exp
trunk/callgrind/tests/simwork2.vgtest
trunk/callgrind/tests/simwork3.stderr.exp
trunk/callgrind/tests/simwork3.stdout.exp
trunk/callgrind/tests/simwork3.vgtest
trunk/callgrind/tests/threads.c
trunk/callgrind/tests/threads.stderr.exp
trunk/callgrind/tests/threads.vgtest
Modified:
trunk/callgrind/main.c
trunk/callgrind/tests/
trunk/callgrind/tests/Makefile.am
trunk/callgrind/tests/clreq.stderr.exp
trunk/callgrind/tests/clreq.vgtest
trunk/callgrind/tests/filter_stderr
Modified: trunk/callgrind/main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/main.c 2006-04-02 16:21:44 UTC (rev 5815)
+++ trunk/callgrind/main.c 2006-04-02 22:23:27 UTC (rev 5816)
@@ -1046,7 +1046,6 @@
CLG_(instrument_state) =3D CLG_(clo).instrument_atstart;
=20
if (VG_(clo_verbosity > 0)) {
- VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg,
"For interactive control, run 'callgrind_control -h'.=
");
}
Property changes on: trunk/callgrind/tests
___________________________________________________________________
Name: svn:ignore
- callgrind.out.*
clreq
.deps
Makefile
Makefile.in
*.stderr.diff
*.stderr.out
*.stdout.diff
*.stdout.out
+ callgrind.out.*
clreq
simwork
threads
.deps
Makefile
Makefile.in
*.stderr.diff
*.stderr.out
*.stdout.diff
*.stdout.out
Modified: trunk/callgrind/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/Makefile.am 2006-04-02 16:21:44 UTC (rev 5815)
+++ trunk/callgrind/tests/Makefile.am 2006-04-02 22:23:27 UTC (rev 5816)
@@ -6,11 +6,15 @@
=20
noinst_SCRIPTS =3D filter_stderr
=20
-EXTRA_DIST =3D clreq.vgtest clreq.stderr.exp=20
+EXTRA_DIST =3D clreq.vgtest clreq.stderr.exp \
+ simwork1.vgtest simwork1.stdout.exp simwork1.stderr.exp \
+ simwork2.vgtest simwork2.stdout.exp simwork2.stderr.exp \
+ simwork3.vgtest simwork3.stdout.exp simwork3.stderr.exp \
+ threads.vgtest threads.stderr.exp
=20
-check_PROGRAMS =3D clreq
+check_PROGRAMS =3D clreq simwork threads
=20
AM_CPPFLAGS =3D -I$(top_srcdir)/include
AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI=
)
=20
-
+threads_LDADD =3D -lpthread
Modified: trunk/callgrind/tests/clreq.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/clreq.stderr.exp 2006-04-02 16:21:44 UTC (rev 5=
815)
+++ trunk/callgrind/tests/clreq.stderr.exp 2006-04-02 22:23:27 UTC (rev 5=
816)
@@ -0,0 +1,6 @@
+
+
+Events : Ir
+Collected :
+
+I refs:
Modified: trunk/callgrind/tests/clreq.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/clreq.vgtest 2006-04-02 16:21:44 UTC (rev 5815)
+++ trunk/callgrind/tests/clreq.vgtest 2006-04-02 22:23:27 UTC (rev 5816)
@@ -1,3 +1,3 @@
prog: clreq
-vgopts: -q
+vgopts:
cleanup: rm callgrind.out.*
Modified: trunk/callgrind/tests/filter_stderr
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/filter_stderr 2006-04-02 16:21:44 UTC (rev 5815=
)
+++ trunk/callgrind/tests/filter_stderr 2006-04-02 22:23:27 UTC (rev 5816=
)
@@ -7,6 +7,12 @@
# Remove "Callgrind, ..." line and the following copyright line.
sed "/^Callgrind, a call-graph generating cache profiler./ , /./ d" |
=20
+# Remove pointer to callgrind_control
+sed "/^For interactive control,.*$/d" |
+
+# Remove numbers from "Collected" line
+sed "s/^\(Collected *:\)[ 0-9]*$/\1/" |
+
# Remove numbers from I/D/L2 "refs:" lines
sed "s/\(\(I\|D\|L2\) *refs:\)[ 0-9,()+rdw]*$/\1/" |
=20
Added: trunk/callgrind/tests/simwork.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork.c (rev 0)
+++ trunk/callgrind/tests/simwork.c 2006-04-02 22:23:27 UTC (rev 5816)
@@ -0,0 +1,66 @@
+// Some work exercising the cache simulator
+// with a simple call graph
+
+#include "../callgrind.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZE 100000
+
+double *a, *b, *c;
+
+void init()
+{
+ int i;
+ for(i =3D 0; i< SIZE; i++) a[i] =3D b[i] =3D 1.0;
+}
+
+void do_add()
+{
+ int i;
+ for(i =3D 0; i< SIZE; i++) {
+ a[i] +=3D 1.0;
+ c[i] =3D a[i] + b[i];
+ }
+}
+
+double do_sum()
+{
+ int i;
+ double sum=3D0.0;
+
+ do_add();
+ for(i =3D 0; i< SIZE; i++) sum +=3D c[i];
+
+ return sum;
+}
+
+double do_some_work(int iter)
+{
+ double sum=3D0.0;
+
+ if (iter > 0) sum +=3D do_some_work(iter-1);
+ do_add();
+ sum +=3D do_sum();
+
+ return sum;
+}
+
+int main(void)
+{
+ double res;
+
+ a =3D (double*) malloc(SIZE * sizeof(double));
+ b =3D (double*) malloc(SIZE * sizeof(double));
+ c =3D (double*) malloc(SIZE * sizeof(double));
+
+ CALLGRIND_ZERO_STATS;
+ init();
+ res =3D do_some_work(1);
+ CALLGRIND_DUMP_STATS;
+
+ printf("Sum: %.0f\n", res);
+ return RUNNING_ON_VALGRIND;
+}
+
Added: trunk/callgrind/tests/simwork1.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork1.stderr.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork1.stderr.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1,20 @@
+
+
+Events : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+Collected :
+
+I refs:
+I1 misses:
+L2i misses:
+I1 miss rate:
+L2i miss rate:
+
+D refs:
+D1 misses:
+L2d misses:
+D1 miss rate:
+L2d miss rate:
+
+L2 refs:
+L2 misses:
+L2 miss rate:
Added: trunk/callgrind/tests/simwork1.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork1.stdout.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork1.stdout.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1 @@
+Sum: 1000000
Added: trunk/callgrind/tests/simwork1.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork1.vgtest (rev 0)
+++ trunk/callgrind/tests/simwork1.vgtest 2006-04-02 22:23:27 UTC (rev 58=
16)
@@ -0,0 +1,3 @@
+prog: simwork
+vgopts: --simulate-hwpref=3Dyes
+cleanup: rm callgrind.out.*
Added: trunk/callgrind/tests/simwork2.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork2.stderr.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork2.stderr.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1,20 @@
+
+
+Events : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw I2dmr D2dmr D2dmw
+Collected :
+
+I refs:
+I1 misses:
+L2i misses:
+I1 miss rate:
+L2i miss rate:
+
+D refs:
+D1 misses:
+L2d misses:
+D1 miss rate:
+L2d miss rate:
+
+L2 refs:
+L2 misses:
+L2 miss rate:
Added: trunk/callgrind/tests/simwork2.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork2.stdout.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork2.stdout.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1 @@
+Sum: 1000000
Added: trunk/callgrind/tests/simwork2.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork2.vgtest (rev 0)
+++ trunk/callgrind/tests/simwork2.vgtest 2006-04-02 22:23:27 UTC (rev 58=
16)
@@ -0,0 +1,3 @@
+prog: simwork
+vgopts: --simulate-wb=3Dyes --simulate-hwpref=3Dyes
+cleanup: rm callgrind.out.*
Added: trunk/callgrind/tests/simwork3.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork3.stderr.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork3.stderr.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1,20 @@
+
+
+Events : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw AcCost1 SpLoss1 AcCos=
t2 SpLoss2
+Collected :
+
+I refs:
+I1 misses:
+L2i misses:
+I1 miss rate:
+L2i miss rate:
+
+D refs:
+D1 misses:
+L2d misses:
+D1 miss rate:
+L2d miss rate:
+
+L2 refs:
+L2 misses:
+L2 miss rate:
Added: trunk/callgrind/tests/simwork3.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork3.stdout.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork3.stdout.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1 @@
+Sum: 1000000
Added: trunk/callgrind/tests/simwork3.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork3.vgtest (rev 0)
+++ trunk/callgrind/tests/simwork3.vgtest 2006-04-02 22:23:27 UTC (rev 58=
16)
@@ -0,0 +1,3 @@
+prog: simwork
+vgopts: --cacheuse=3Dyes
+cleanup: rm callgrind.out.*
Added: trunk/callgrind/tests/threads.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/threads.c (rev 0)
+++ trunk/callgrind/tests/threads.c 2006-04-02 22:23:27 UTC (rev 5816)
@@ -0,0 +1,47 @@
+/* A simple example with 4 threads */
+
+#include <pthread.h>
+#include <unistd.h>
+
+double a[1000];
+
+static void init()
+{
+ int i;
+ for(i=3D0;i<1000;i++) a[i] =3D (double)i;
+}
+
+static void *th(void *v)
+{
+ double sum =3D 0.0;
+ int i,j;
+
+ for(j=3D0;j<1000;j++)
+ for(i=3D0;i<1000;i++)
+ sum +=3D a[i];
+
+ *( (double*)v ) =3D sum;
+
+ /* make sure that no threads is so fast that it finishes
+ * before last thread is created, thus reusing the TID */
+ sleep(1);
+
+ return 0;
+}
+
+int main()
+{
+ pthread_t t[4];
+ double sum[4];
+ int i;
+
+ init();
+
+ for(i=3D0;i<4;i++)
+ pthread_create(&t[i], NULL, th, &sum[i]);=09
+
+ for(i=3D0;i<4;i++)
+ pthread_join(t[i], NULL);
+
+ return 0;
+}
Added: trunk/callgrind/tests/threads.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/threads.stderr.exp (rev=
0)
+++ trunk/callgrind/tests/threads.stderr.exp 2006-04-02 22:23:27 UTC (rev=
5816)
@@ -0,0 +1,6 @@
+
+
+Events : Ir
+Collected :
+
+I refs:
Added: trunk/callgrind/tests/threads.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/threads.vgtest (rev 0)
+++ trunk/callgrind/tests/threads.vgtest 2006-04-02 22:23:27 UTC (rev 581=
6)
@@ -0,0 +1,3 @@
+prog: threads
+vgopts: --separate-threads=3Dyes
+cleanup: rm callgrind.out.*
|
|
From: Nicholas N. <nj...@cs...> - 2006-04-02 21:48:48
|
On Sun, 2 Apr 2006, Julian Seward wrote:
>> Are you fine with the added post-test check in the regression
>> tests?
>
> It looks OK to me, but it would be good if Nick could have a look
> too ("Patch: add a post-test check to the regtest script") as the
> original perl script author.
I'll take a look at merging it tonight. I wonder if having a
posttest_filter (like the std{err,out}_filters) would be useful too.
Nick
|
|
From: Julian S. <js...@ac...> - 2006-04-02 18:00:16
|
> Ah, thanks.
> Hmm. As unsafeIRDirty_0_N always gets a function pointer as 3rd
> parameter, wouldn't it be better to do fnptr_to_fnentry inside
> of it, to help tool authors avoid this trap?
Well, maybe, but that pushes ABI-specific details inside vex, which
complicates the interface.
> Partly, these use different simulation functions, so I will do
> multiple tests.
That would be good.
> Are you fine with the added post-test check in the regression
> tests?
It looks OK to me, but it would be good if Nick could have a look
too ("Patch: add a post-test check to the regtest script") as the
original perl script author.
> Or am I missing something, and such checks are already
> possible with the current framework?
No .. such checks are not already possible, as far as I know.
So this sounds like a useful addition.
J
|
|
From: Josef W. <Jos...@gm...> - 2006-04-02 17:30:42
|
On Sunday 02 April 2006 18:13, Julian Seward wrote:
> The problem is the crazy ppc64-linux ABI. On {x86,amd64,ppc32}-linux,
> if f is a function, then &f (in C) is the address of the first instruction
> of f (or PLT; at least it's a code address). On ppc64-linux, &f gives
> you a pointer to a 3-word function descriptor, the first word of which
> is the address of the code.
>
> Therefore, when passing function addresses for code generation to VEX (using
> eg unsafeIRDirty_0_N) you need to first apply VG_(fnptr_to_fnentry) to
> what you get from the & operator. VG_(fnptr_to_fnentry) is the identity
> on {x86,amd64,ppc32}-linux and fetches the first word of the function
> descriptor on ppc64-linux. (compare cachegrind, memcheck etc)
Ah, thanks.
Hmm. As unsafeIRDirty_0_N always gets a function pointer as 3rd
parameter, wouldn't it be better to do fnptr_to_fnentry inside
of it, to help tool authors avoid this trap?
> I've fixed this particular one (r5814) but now I am wondering why the
> rest of callgrind doesn't crash on ppc64-linux. Specifically I see that
> insert_simcall() calls unsafeIRDirty_0_N without using VG_(fnptr_to_fnentry),
> and I think it only works due to the line "if (helperAddr == 0) return 0;"
> and helperAddr is always zero.
Yes. By default, there is no cache simulation done at all, so the helper was
always 0. In this case, I have a special case here to still be able to get the
instruction fetches - it is calculated from the number of instruction in a
BB and the execution count of the BBs.
> Can you look into this?
As I see, you've done the second fix, too (r5815).
> It would be good to have a regression test which uses as much
> of callgrind's functionality as possible (eg --simulate-cache=yes
> --simulate-wb=yes --simulate-hwpref=yes) so that more of callgrind
> gets tested each night.
Partly, these use different simulation functions, so I will do
multiple tests.
Are you fine with the added post-test check in the regression
tests? Or am I missing something, and such checks are already
possible with the current framework?
Josef
|
|
From: <sv...@va...> - 2006-04-02 16:21:53
|
Author: sewardj
Date: 2006-04-02 17:21:44 +0100 (Sun, 02 Apr 2006)
New Revision: 5815
Log:
Fix another place where function addresses passed to Vex needed to be
dereferenced properly. (Logically part of r5814).
Modified:
trunk/callgrind/main.c
Modified: trunk/callgrind/main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/main.c 2006-04-02 15:53:59 UTC (rev 5814)
+++ trunk/callgrind/main.c 2006-04-02 16:21:44 UTC (rev 5815)
@@ -226,7 +226,8 @@
else
VG_(tool_panic)("argc... not 1 or 2 or 3?");
=20
- di =3D unsafeIRDirty_0_N( argc, helperName, helperAddr, argv);
+ di =3D unsafeIRDirty_0_N( argc, helperName,=20
+ VG_(fnptr_to_fnentry)( helperAddr ), a=
rgv);
addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
=20
return es;
|
|
From: Julian S. <js...@ac...> - 2006-04-02 16:13:35
|
The problem is the crazy ppc64-linux ABI. On {x86,amd64,ppc32}-linux,
if f is a function, then &f (in C) is the address of the first instruction
of f (or PLT; at least it's a code address). On ppc64-linux, &f gives
you a pointer to a 3-word function descriptor, the first word of which
is the address of the code.
Therefore, when passing function addresses for code generation to VEX (using
eg unsafeIRDirty_0_N) you need to first apply VG_(fnptr_to_fnentry) to
what you get from the & operator. VG_(fnptr_to_fnentry) is the identity
on {x86,amd64,ppc32}-linux and fetches the first word of the function
descriptor on ppc64-linux. (compare cachegrind, memcheck etc)
I've fixed this particular one (r5814) but now I am wondering why the
rest of callgrind doesn't crash on ppc64-linux. Specifically I see that
insert_simcall() calls unsafeIRDirty_0_N without using VG_(fnptr_to_fnentry),
and I think it only works due to the line "if (helperAddr == 0) return 0;"
and helperAddr is always zero.
Can you look into this?
It would be good to have a regression test which uses as much
of callgrind's functionality as possible (eg --simulate-cache=yes
--simulate-wb=yes --simulate-hwpref=yes) so that more of callgrind
gets tested each night.
J
On Sunday 02 April 2006 13:28, Josef Weidendorfer wrote:
> Hi,
>
> On Sunday 02 April 2006 04:55, js...@ac... wrote:
> > == 203 tests, 7 stderr failures, 3 stdout failures =================
> > memcheck/tests/leak-cycle (stderr)
> > memcheck/tests/leak-tree (stderr)
> > memcheck/tests/leakotron (stdout)
> > memcheck/tests/pointer-trace (stderr)
> > memcheck/tests/sh-mem-random (stdout)
> > callgrind/tests/clreq (stderr)
>
> What is the problem here?
>
> Josef
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> that extends applications into web and mobile media. Attend the live
> webcast and join the prime developer group breaking into this new coding
> territory!
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> _______________________________________________
> Valgrind-developers mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-developers
|
|
From: <sv...@va...> - 2006-04-02 15:54:10
|
Author: sewardj
Date: 2006-04-02 16:53:59 +0100 (Sun, 02 Apr 2006)
New Revision: 5814
Log:
Fix ppc64-linux breakage - get the function entry address, not the
descriptor address.
Modified:
trunk/callgrind/main.c
Modified: trunk/callgrind/main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/main.c 2006-04-02 02:59:35 UTC (rev 5813)
+++ trunk/callgrind/main.c 2006-04-02 15:53:59 UTC (rev 5814)
@@ -564,7 +564,9 @@
// helper call to setup_bbcc, with pointer to basic block info struct=
as argument
arg1 =3D mkIRExpr_HWord( (HWord)bb );
argv =3D mkIRExprVec_1(arg1);
- di =3D unsafeIRDirty_0_N( 1, "setup_bbcc", & CLG_(setup_bbcc), argv);
+ di =3D unsafeIRDirty_0_N( 1, "setup_bbcc",=20
+ VG_(fnptr_to_fnentry)( & CLG_(setup_bbcc) =
),=20
+ argv);
addStmtToIRBB( bbOut, IRStmt_Dirty(di) );
=20
instrCount =3D 0;
|
|
From: Josef W. <Jos...@gm...> - 2006-04-02 12:29:09
|
Hi, On Sunday 02 April 2006 04:55, js...@ac... wrote: > == 203 tests, 7 stderr failures, 3 stdout failures ================= > memcheck/tests/leak-cycle (stderr) > memcheck/tests/leak-tree (stderr) > memcheck/tests/leakotron (stdout) > memcheck/tests/pointer-trace (stderr) > memcheck/tests/sh-mem-random (stdout) > callgrind/tests/clreq (stderr) What is the problem here? Josef |
|
From: <js...@ac...> - 2006-04-02 11:20:44
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2006-04-02 02:00:02 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 == 197 tests, 11 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/stack_changes (stdout) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) ================================================= == 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 == 197 tests, 12 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sh-mem (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/stack_changes (stdout) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Apr 2 02:10:54 2006 --- new.short Sun Apr 2 02:21:39 2006 *************** *** 8,10 **** ! == 197 tests, 12 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) --- 8,10 ---- ! == 197 tests, 11 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) *************** *** 14,16 **** memcheck/tests/pointer-trace (stderr) - memcheck/tests/sh-mem (stderr) memcheck/tests/sigaltstack (stderr) --- 14,15 ---- |
|
From: Tom H. <th...@cy...> - 2006-04-02 03:25:20
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-04-02 03:00:02 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 == 253 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sh-mem-random (stdout) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (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 == 252 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Apr 2 03:42:02 2006 --- new.short Sun Apr 2 04:25:07 2006 *************** *** 8,10 **** ! == 252 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) --- 8,11 ---- ! == 253 tests, 7 stderr failures, 2 stdout failures ================= ! memcheck/tests/sh-mem-random (stdout) memcheck/tests/stack_switch (stderr) |
|
From: <js...@ac...> - 2006-04-02 03:02:29
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-04-02 03:30:01 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 229 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 228 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Apr 2 03:45:58 2006 --- new.short Sun Apr 2 04:02:10 2006 *************** *** 10,12 **** ! == 228 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) --- 10,12 ---- ! == 229 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) |
|
From: <sv...@va...> - 2006-04-02 02:59:40
|
Author: sewardj Date: 2006-04-02 03:59:35 +0100 (Sun, 02 Apr 2006) New Revision: 5813 Log: Add 64-bit test output. Added: trunk/memcheck/tests/sh-mem-random.stdout.exp64 Modified: trunk/memcheck/tests/Makefile.am Modified: trunk/memcheck/tests/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/memcheck/tests/Makefile.am 2006-04-02 02:27:52 UTC (rev 5812) +++ trunk/memcheck/tests/Makefile.am 2006-04-02 02:59:35 UTC (rev 5813) @@ -92,7 +92,8 @@ realloc2.stderr.exp realloc2.vgtest \ realloc3.stderr.exp realloc3.vgtest \ sh-mem.stderr.exp sh-mem.vgtest \ - sh-mem-random.stderr.exp sh-mem-random.vgtest \ + sh-mem-random.stderr.exp sh-mem-random.stderr.exp64 \ + sh-mem-random.stdout.exp sh-mem-random.vgtest \ sigaltstack.stderr.exp sigaltstack.vgtest \ sigkill.stderr.exp sigkill.stderr.exp2 sigkill.stderr.exp3 sigkill.vgte= st \ signal2.stderr.exp signal2.stdout.exp signal2.vgtest \ Added: trunk/memcheck/tests/sh-mem-random.stdout.exp64 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/memcheck/tests/sh-mem-random.stdout.exp64 = (rev 0) +++ trunk/memcheck/tests/sh-mem-random.stdout.exp64 2006-04-02 02:59:35 U= TC (rev 5813) @@ -0,0 +1,16 @@ +-------- testing non-auxmap range -------- +initialising +post-initialisation check +test passed, sum =3D 38338686 (127.79562 per byte) +doing copies +final check +test passed, sum =3D 38583755 (128.61252 per byte) +counts 1/2/4/8/F4/F8: 300249 300934 299432 299394 0 299991 +-------- testing auxmap range -------- +initialising +post-initialisation check +test passed, sum =3D 38280859 (127.60286 per byte) +doing copies +final check +test passed, sum =3D 38383372 (127.94457 per byte) +counts 1/2/4/8/F4/F8: 300037 299522 300323 299732 0 300386 |
|
From: <js...@ac...> - 2006-04-02 02:55:57
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-04-02 04:40:00 CEST 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 == 203 tests, 7 stderr failures, 3 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/sh-mem-random (stdout) callgrind/tests/clreq (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/ppc32/mftocrf (stdout) ================================================= == 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 == 202 tests, 8 stderr failures, 2 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/sh-mem (stderr) callgrind/tests/clreq (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/ppc32/mftocrf (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Apr 2 04:48:02 2006 --- new.short Sun Apr 2 04:55:51 2006 *************** *** 8,10 **** ! == 202 tests, 8 stderr failures, 2 stdout failures ================= memcheck/tests/leak-cycle (stderr) --- 8,10 ---- ! == 203 tests, 7 stderr failures, 3 stdout failures ================= memcheck/tests/leak-cycle (stderr) *************** *** 13,15 **** memcheck/tests/pointer-trace (stderr) ! memcheck/tests/sh-mem (stderr) callgrind/tests/clreq (stderr) --- 13,15 ---- memcheck/tests/pointer-trace (stderr) ! memcheck/tests/sh-mem-random (stdout) callgrind/tests/clreq (stderr) |
|
From: Tom H. <to...@co...> - 2006-04-02 02:44:26
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-04-02 03:30:07 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 == 231 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (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 == 230 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Apr 2 03:37:16 2006 --- new.short Sun Apr 2 03:44:21 2006 *************** *** 8,10 **** ! == 230 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) --- 8,10 ---- ! == 231 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) |
|
From: Tom H. <th...@cy...> - 2006-04-02 02:32:53
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2006-04-02 03:15:06 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 == 230 tests, 22 stderr failures, 2 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sh-mem-random (stdout) memcheck/tests/sh-mem-random (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (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 == 229 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Apr 2 03:24:27 2006 --- new.short Sun Apr 2 03:32:47 2006 *************** *** 8,10 **** ! == 229 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 230 tests, 22 stderr failures, 2 stdout failures ================= memcheck/tests/addressable (stderr) *************** *** 23,24 **** --- 23,26 ---- memcheck/tests/pointer-trace (stderr) + memcheck/tests/sh-mem-random (stdout) + memcheck/tests/sh-mem-random (stderr) memcheck/tests/sigkill (stderr) |
|
From: <sv...@va...> - 2006-04-02 02:28:01
|
Author: sewardj
Date: 2006-04-02 03:27:52 +0100 (Sun, 02 Apr 2006)
New Revision: 5812
Log:
Don't print an address on stdout as it doesn't get automagically
changed into 0x.........
Modified:
trunk/memcheck/tests/sh-mem-random.c
trunk/memcheck/tests/sh-mem-random.stdout.exp
Modified: trunk/memcheck/tests/sh-mem-random.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/sh-mem-random.c 2006-04-02 01:53:01 UTC (rev 581=
1)
+++ trunk/memcheck/tests/sh-mem-random.c 2006-04-02 02:27:52 UTC (rev 581=
2)
@@ -111,7 +111,7 @@
U4 mv1 =3D 0, mv2 =3D 0, mv4 =3D 0, mv8 =3D 0, mv4f =3D 0, mv8f =3D 0=
;
=20
/* Fill arr with random bytes whose shadows match them. */
- printf("-------- arr =3D %p\n", arr);
+ if (0) printf("-------- arr =3D %p\n", arr);
=20
printf("initialising\n");
for (i =3D 0; i < N_BYTES; i++)
Modified: trunk/memcheck/tests/sh-mem-random.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/sh-mem-random.stdout.exp 2006-04-02 01:53:01 UTC=
(rev 5811)
+++ trunk/memcheck/tests/sh-mem-random.stdout.exp 2006-04-02 02:27:52 UTC=
(rev 5812)
@@ -1,5 +1,4 @@
-------- testing non-auxmap range --------
--------- arr =3D 0x415b028
initialising
post-initialisation check
test passed, sum =3D 38338686 (127.79562 per byte)
|
|
From: Tom H. <th...@cy...> - 2006-04-02 02:25:42
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-04-02 03:10:08 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 == 253 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/pointer-trace (stderr) memcheck/tests/sh-mem-random (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (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 == 252 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Apr 2 03:18:34 2006 --- new.short Sun Apr 2 03:25:37 2006 *************** *** 8,10 **** ! == 252 tests, 5 stderr failures, 1 stdout failure ================= memcheck/tests/x86/scalar (stderr) --- 8,12 ---- ! == 253 tests, 6 stderr failures, 2 stdout failures ================= ! memcheck/tests/pointer-trace (stderr) ! memcheck/tests/sh-mem-random (stdout) memcheck/tests/x86/scalar (stderr) |
|
From: Tom H. <th...@cy...> - 2006-04-02 02:24:37
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-04-02 03:05:15 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 == 253 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/sh-mem-random (stdout) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (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 == 252 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Apr 2 03:15:55 2006 --- new.short Sun Apr 2 03:24:29 2006 *************** *** 8,10 **** ! == 252 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) --- 8,11 ---- ! == 253 tests, 6 stderr failures, 2 stdout failures ================= ! memcheck/tests/sh-mem-random (stdout) memcheck/tests/stack_switch (stderr) |
|
From: <sv...@va...> - 2006-04-02 01:53:14
|
Author: sewardj
Date: 2006-04-02 02:53:01 +0100 (Sun, 02 Apr 2006)
New Revision: 5811
Log:
Another shadow memory test. This one does a huge number of loads and
stores of char/short/int/int64/double at random offsets and hence
alignments in an array. It does it in a way in which the computation
just computes the expected V bits, and hence can check whether these
seem correct.
Added:
trunk/memcheck/tests/sh-mem-random.c
trunk/memcheck/tests/sh-mem-random.stderr.exp
trunk/memcheck/tests/sh-mem-random.stdout.exp
trunk/memcheck/tests/sh-mem-random.vgtest
Modified:
trunk/memcheck/tests/Makefile.am
Modified: trunk/memcheck/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/Makefile.am 2006-04-02 00:58:45 UTC (rev 5810)
+++ trunk/memcheck/tests/Makefile.am 2006-04-02 01:53:01 UTC (rev 5811)
@@ -92,6 +92,7 @@
realloc2.stderr.exp realloc2.vgtest \
realloc3.stderr.exp realloc3.vgtest \
sh-mem.stderr.exp sh-mem.vgtest \
+ sh-mem-random.stderr.exp sh-mem-random.vgtest \
sigaltstack.stderr.exp sigaltstack.vgtest \
sigkill.stderr.exp sigkill.stderr.exp2 sigkill.stderr.exp3 sigkill.vgte=
st \
signal2.stderr.exp signal2.stdout.exp signal2.vgtest \
@@ -149,7 +150,7 @@
pipe pointer-trace \
post-syscall \
realloc1 realloc2 realloc3 \
- sh-mem \
+ sh-mem sh-mem-random \
sigaltstack signal2 sigprocmask sigkill \
stack_changes stack_switch strchr str_tester \
supp_unknown supp1 supp2 suppfree \
Added: trunk/memcheck/tests/sh-mem-random.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/sh-mem-random.c (rev 0)
+++ trunk/memcheck/tests/sh-mem-random.c 2006-04-02 01:53:01 UTC (rev 581=
1)
@@ -0,0 +1,239 @@
+// This program is a thorough test of the LOADVn/STOREVn shadow memory
+// operations.
+
+#include <assert.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/mman.h>
+#include "memcheck/memcheck.h"
+
+// All the sizes here are in *bytes*, not bits.
+
+typedef unsigned char U1;
+typedef unsigned short U2;
+typedef unsigned int U4;
+typedef unsigned long long U8;
+
+typedef float F4;
+typedef double F8;
+
+#define PAGE_SIZE 4096ULL
+
+
+// XXX: should check the error cases for SET/GET_VBITS also
+
+// For the byte 'x', build a value of 'size' bytes from that byte, eg:
+// size 1 --> x
+// size 2 --> xx
+// size 4 --> xxxx
+// size 8 --> xxxxxxxx
+// where the 0 bits are seen by Memcheck as defined, and the 1 bits are
+// seen as undefined (ie. the value of each bit matches its V bit, ie. t=
he
+// resulting value is the same as its metavalue).
+//
+U8 build(int size, U1 byte)
+{
+ int i;
+ U8 mask =3D 0;
+ U8 shres;
+ U8 res =3D 0xffffffffffffffffULL, res2;
+ VALGRIND_MAKE_WRITABLE(&res, 8);
+ assert(1 =3D=3D size || 2 =3D=3D size || 4 =3D=3D size || 8 =3D=3D si=
ze);
+
+ for (i =3D 0; i < size; i++) {
+ mask <<=3D 8;
+ mask |=3D (U8)byte;
+ }
+
+ res &=3D mask; =20
+ =20
+ // res is now considered partially defined, but we know exactly what =
its
+ // value is (it happens to be the same as its metavalue).
+ =20
+ VALGRIND_GET_VBITS(&res, &shres, 8);
+ res2 =3D res;
+ VALGRIND_MAKE_READABLE(&res2, 8); // avoid the 'undefined' warni=
ng
+ assert(res2 =3D=3D shres);
+ return res;
+}
+
+U1 make_defined ( U1 x )
+{
+ volatile U1 xx =3D x;
+ VALGRIND_MAKE_READABLE(&xx, 1);
+ return xx;
+}
+
+void check(U1* arr, int n, char* who)
+{
+ int i;
+ U1* shadow =3D malloc(n);
+ U1 arr_i;
+ U8 sum =3D 0;
+ VALGRIND_GET_VBITS(arr, shadow, n);
+ for (i =3D 0; i < n; i++) {
+ arr_i =3D make_defined(arr[i]);
+ if (arr_i !=3D shadow[i]) {
+ fprintf(stderr, "\n\nFAILURE: %s, byte %d -- "
+ "is 0x%x, should be 0x%x\n\n",
+ who, i, shadow[i], arr[i]);
+ exit(1);
+ }
+ sum +=3D (U8)arr_i;
+ }
+ free(shadow);
+ printf("test passed, sum =3D %llu (%9.5f per byte)\n",=20
+ sum, (F8)sum / (F8)n);
+}
+
+static inline U4 randomU4 ( void )
+{
+ static U4 n =3D 0;
+ /* From "Numerical Recipes in C" 2nd Edition */
+ n =3D 1664525UL * n + 1013904223UL;
+ return n;
+}
+
+static inline U1 randomU1 ( void )
+{
+ return 0xFF & (randomU4() >> 13);
+}
+
+#define N_BYTES 300000
+#define N_EVENTS (5 * N_BYTES)
+
+
+void do_test_at ( U1* arr )
+{
+ int i;
+
+ U4 mv1 =3D 0, mv2 =3D 0, mv4 =3D 0, mv8 =3D 0, mv4f =3D 0, mv8f =3D 0=
;
+
+ /* Fill arr with random bytes whose shadows match them. */
+ printf("-------- arr =3D %p\n", arr);
+
+ printf("initialising\n");
+ for (i =3D 0; i < N_BYTES; i++)
+ arr[i] =3D (U1)build(1, randomU1());
+
+ printf("post-initialisation check\n");
+ check(arr, N_BYTES, "after initialisation");
+
+ /* Now do huge numbers of memory copies. */
+ printf("doing copies\n");
+ for (i =3D 0; i < N_EVENTS; i++) {
+ U4 ty, src, dst;
+ ty =3D (randomU4() >> 13) % 5;
+ tryagain:
+ src =3D (randomU4() >> 1) % N_BYTES;
+ dst =3D (randomU4() >> 3) % N_BYTES;
+ switch (ty) {
+ case 0: { // U1
+ *(U1*)(arr+dst) =3D *(U1*)(arr+src);
+ mv1++;
+ break;
+ }
+ case 1: { // U2
+ if (src+2 >=3D N_BYTES || dst+2 >=3D N_BYTES)=20
+ goto tryagain;
+ *(U2*)(arr+dst) =3D *(U2*)(arr+src);
+ mv2++;
+ break;
+ }
+ case 2: { // U4
+ if (src+4 >=3D N_BYTES || dst+4 >=3D N_BYTES)=20
+ goto tryagain;
+ *(U4*)(arr+dst) =3D *(U4*)(arr+src);
+ mv4++;
+ break;
+ }
+ case 3: { // U8
+ if (src+8 >=3D N_BYTES || dst+8 >=3D N_BYTES)=20
+ goto tryagain;
+ *(U8*)(arr+dst) =3D *(U8*)(arr+src);
+ mv8++;
+ break;
+ }
+ /* Don't bother with 32-bit floats. These cause
+ horrible complications, as discussed in sh-mem.c. */
+ /*
+ case 4: { // F4
+ if (src+4 >=3D N_BYTES || dst+4 >=3D N_BYTES)=20
+ goto tryagain;
+ *(F4*)(arr+dst) =3D *(F4*)(arr+src);
+ mv4f++;
+ break;
+ }
+ */
+ case 4: { // F8
+ if (src+8 >=3D N_BYTES || dst+8 >=3D N_BYTES)=20
+ goto tryagain;
+ *(F8*)(arr+dst) =3D *(F8*)(arr+src);
+ mv8f++;
+ break;
+ }
+ default:
+ fprintf(stderr, "sh-mem-random: bad size\n");
+ exit(0);
+ }
+ }
+
+ printf("final check\n");
+ check(arr, N_BYTES, "final check");
+
+ printf("counts 1/2/4/8/F4/F8: %d %d %d %d %d %d\n",=20
+ mv1, mv2, mv4, mv8, mv4f, mv8f);
+}
+
+
+
+int main(void)
+{
+ U1* arr;
+
+ if (0 =3D=3D RUNNING_ON_VALGRIND) {
+ fprintf(stderr, "error: this program only works when run under Val=
grind\n");
+ exit(1);
+ }
+
+ printf("-------- testing non-auxmap range --------\n");
+
+ arr =3D malloc(N_BYTES);
+ assert(arr);
+ do_test_at(arr);
+ free(arr);
+
+ if (sizeof(void*) =3D=3D 8) {
+ // 64-bit platform.
+ int tries;
+ int nbytes_p;
+ U1* huge_addr =3D (U1*)0x6600000000; // 408GB
+ // Note, kernel 2.6.? on Athlon64 refuses fixed mmap requests
+ // at above 512GB.
+
+ printf("-------- testing auxmap range --------\n");
+
+ nbytes_p =3D (N_BYTES + PAGE_SIZE) & ~(PAGE_SIZE-1);
+
+ for (tries =3D 0; tries < 10; tries++) {
+ arr =3D mmap(huge_addr, nbytes_p, PROT_READ|PROT_WRITE,=20
+ MAP_FIXED|MAP_PRIVATE|MAP_ANONYMOUS, 0,0);
+ if (arr !=3D MAP_FAILED)
+ break;
+ // hmm. fudge the address and try again.
+ huge_addr +=3D (randomU4() & ~(PAGE_SIZE-1));
+ }
+
+ if (tries >=3D 10) {
+ fprintf(stderr, "sh-mem-random: can't mmap hi-mem\n");
+ exit(0);
+ }
+ assert(arr !=3D MAP_FAILED);
+
+ do_test_at(arr);
+ }
+
+ return 0;
+
+}
Added: trunk/memcheck/tests/sh-mem-random.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Added: trunk/memcheck/tests/sh-mem-random.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/sh-mem-random.stdout.exp =
(rev 0)
+++ trunk/memcheck/tests/sh-mem-random.stdout.exp 2006-04-02 01:53:01 UTC=
(rev 5811)
@@ -0,0 +1,9 @@
+-------- testing non-auxmap range --------
+-------- arr =3D 0x415b028
+initialising
+post-initialisation check
+test passed, sum =3D 38338686 (127.79562 per byte)
+doing copies
+final check
+test passed, sum =3D 38583755 (128.61252 per byte)
+counts 1/2/4/8/F4/F8: 300249 300934 299432 299394 0 299991
Added: trunk/memcheck/tests/sh-mem-random.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/sh-mem-random.vgtest (re=
v 0)
+++ trunk/memcheck/tests/sh-mem-random.vgtest 2006-04-02 01:53:01 UTC (re=
v 5811)
@@ -0,0 +1,2 @@
+prog: sh-mem-random
+vgopts: -q
|
|
From: L. D. B. <db...@db...> - 2006-04-02 01:28:29
|
I've been looking into why valgrind doesn't pick up information from the
*-debuginfo packages on Fedora Core 5, and have a patch against valgrind
3.1.1 that fixes the problems I'm seeing. I'm willing to port this to
the trunk (which is probably where I should have started, although I
have looked at the code there to see that the same problems are present
there), but I have a few questions first.
There are two basic problems that prevent the information in the
debuginfo file reached through the .gnu_debuglink section from working
correctly:
1. Presumably because of prelinking (although I haven't verified this),
the symbol table in the library is based on a non-zero offset, but in
the debuginfo file it's based on a zero offset. The current code
assumes that the offset (stored in the offset member of struct _SegInfo)
is constant across the .dynsym, .strtab, and .debug_* sections.
2. Some of the libraries shipped with Fedora Core 5 (e.g., gtk+/gdk
libraries) have been stripped. This means that the .strtab and .symtab
sections must be read from the debuginfo file.
My current patch takes the approach of passing the appropriate offset
around with the symbol table or debug data, rather than changing the one
offset stored in struct _SegInfo into three separate offsets. But
either way there are three different offsets:
1. the one used for the data from the .dynsym sections, which always
comes from the library
2. the one used for the data from the .symtab sections, which comes
from the library unless the library is stripped and external
debuginfo is found
3. the one used for the data from the .debug_* or .stab sections, which
comes from the debuginfo file if external debuginfo is found
This seems fine, except that there's what looks to me like a public API,
seginfo_sym_offset, that returns that information (currently #1 above).
I see three things that could be done with the public API:
1. remove it (which the attached patch does)
2. preserve its behavior and either document it better or deprecate it
3. extend it so that all three offsets can be obtained
Since I have no idea what, if anything, uses this API, I'm in no
position to judge which of these is the best course.
My current patch (against 3.1.1) is attached, although it's not ready
for inclusion.
-David
--
L. David Baron <URL: http://dbaron.org/ >
Technical Lead, Layout & CSS, Mozilla Corporation
|
|
From: <sv...@va...> - 2006-04-02 00:58:48
|
Author: sewardj
Date: 2006-04-02 01:58:45 +0100 (Sun, 02 Apr 2006)
New Revision: 5810
Log:
Get rid of unused #define.
Modified:
trunk/coregrind/m_signals.c
Modified: trunk/coregrind/m_signals.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_signals.c 2006-04-02 00:58:01 UTC (rev 5809)
+++ trunk/coregrind/m_signals.c 2006-04-02 00:58:45 UTC (rev 5810)
@@ -106,10 +106,6 @@
#include "vki_unistd.h"
=20
=20
-/* Define to give more sanity checking for signals. */
-#define DEBUG_SIGNALS
-
-
/* ---------------------------------------------------------------------
Forwards decls.
------------------------------------------------------------------ */
|
|
From: <sv...@va...> - 2006-04-02 00:58:07
|
Author: sewardj
Date: 2006-04-02 01:58:01 +0100 (Sun, 02 Apr 2006)
New Revision: 5809
Log:
In check_all, allow two different acceptable byte values, so as to
cover the behaviour of all possible variants of float loads/stores.
Modified:
trunk/memcheck/tests/sh-mem.c
Modified: trunk/memcheck/tests/sh-mem.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/sh-mem.c 2006-04-01 23:06:29 UTC (rev 5808)
+++ trunk/memcheck/tests/sh-mem.c 2006-04-02 00:58:01 UTC (rev 5809)
@@ -61,20 +61,23 @@
return res;
}
=20
-// Check that all the bytes in a[x..y-1] have their V byte equal to 'byt=
e'.
+// Check that all the bytes in a[x..y-1] have their V byte equal=20
+// to either 'expected_byte' or 'expected_byte_alt'.
// 'str' and 'offset' are only used for printing an error message if
// something goes wrong.
-void check_all(U4 x, U4 y, U1 expected_byte, char* str, int offset)
+void check_all(U4 x, U4 y, U1 expected_byte, U1 expected_byte_alt,=20
+ char* str, int offset)
{
U1 sh[SZB_OF_a]; // Used for getting a[]'s V bits
int i;
=20
VALGRIND_GET_VBITS(a, sh, sizeof(a));
for (i =3D x; i < y; i++) {
- if ( expected_byte !=3D sh[i] ) {
+ if ( expected_byte !=3D sh[i] && expected_byte_alt !=3D sh[i] ) {
fprintf(stderr, "\n\nFAILURE: %s, offset %d, byte %d -- "
- "is 0x%x, should be 0x%x\n\n",
- str, offset, i, sh[i], expected_byte);
+ "is 0x%x, should be 0x%x or 0x%x\n\n",
+ str, offset, i, sh[i], expected_byte,=20
+ expected_byte_alt);
exit(1);
}
}
@@ -83,7 +86,7 @@
int main(void)
{
int h, i, j;
- U1 *undefA, expected_byte;
+ U1 *undefA, expected_byte, expected_byte_alt;
=20
if (0 =3D=3D RUNNING_ON_VALGRIND) {
fprintf(stderr, "error: this program only works when run under Val=
grind\n");
@@ -165,24 +168,33 @@
if (0 =3D=3D j % 32) fprintf(stderr, "%d...", j); /* progress m=
eter */ \
\
\
- /* A nasty exception: all machines so far (x86/AMD64/PPC32/PPC6=
4)
+ /* A nasty exception: most machines so far (x86/PPC32/PPC64)
* don't have 32-bit floats. So 32-bit floats get cast to 64-b=
it
* floats. Memcheck does a PCast in this case, which means tha=
t if
* any V bits for the 32-bit float are undefined (ie. 0 !=3D j)=
, all
* the V bits in the 64-bit float are undefined. So account fo=
r
- * this when checking. */ \
- expected_byte =3D ( (isF4 && 0 !=3D j) ? 0xff : j ); \
+ * this when checking. AMD64 typically does FP arithmetic on
+ * SSE, effectively giving it access to 32-bit FP registers. S=
o
+ * in short, for floats, we have to allow either 'j' or 0xFF
+ * as an acceptable result. Sigh. */ \
+ if (isF4) { \
+ expected_byte =3D j; \
+ expected_byte_alt =3D 0 !=3D j ? 0xFF : j; \
+ } else { \
+ expected_byte =3D j; \
+ expected_byte_alt =3D j; \
+ } \
\
/* STOREVn. Note that we use the first element of the undefN_T=
y
* array, as explained above. */ \
for (i =3D 0; i < nN-1; i++) { aNb[i] =3D undefN_Ty[0]; } \
- check_all(h, n-NNN+h, expected_byte, "STOREVn", h); \
- \
+ check_all(h, n-NNN+h, expected_byte, expected_byte_alt, "STOREV=
n", h); \
+ \
/* LOADVn -- by copying the values to one place and then back,=20
* we ensure that LOADVn gets exercised. */ \
for (i =3D 0; i < nN-1; i++) { bNb[i] =3D aNb[i]; } \
for (i =3D 0; i < nN-1; i++) { aNb[i] =3D bNb[i]; } \
- check_all(h, n-NNN+h, expected_byte, "LOADVn", h); \
+ check_all(h, n-NNN+h, expected_byte, expected_byte_alt, "LOADVn=
", h); \
} \
fprintf(stderr, "\n"); \
}
|