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
(8) |
2
(10) |
3
(18) |
4
(14) |
5
(16) |
6
(11) |
7
(10) |
|
8
(7) |
9
(8) |
10
(6) |
11
(6) |
12
(9) |
13
(13) |
14
(8) |
|
15
(3) |
16
(6) |
17
(8) |
18
(7) |
19
(7) |
20
(7) |
21
(5) |
|
22
(6) |
23
(5) |
24
(5) |
25
(5) |
26
(7) |
27
(7) |
28
(7) |
|
29
(15) |
30
(11) |
|
|
|
|
|
|
From: <sv...@va...> - 2007-04-05 15:07:00
|
Author: sewardj
Date: 2007-04-05 16:06:56 +0100 (Thu, 05 Apr 2007)
New Revision: 1748
Log:
Fix various cases where the instruction decoder asserted/paniced
instead of doing the normal SIGILL thing. Fixes #143354.
Modified:
trunk/priv/guest-x86/toIR.c
Modified: trunk/priv/guest-x86/toIR.c
===================================================================
--- trunk/priv/guest-x86/toIR.c 2007-04-04 22:48:06 UTC (rev 1747)
+++ trunk/priv/guest-x86/toIR.c 2007-04-05 15:06:56 UTC (rev 1748)
@@ -295,14 +295,6 @@
return newIRTemp( irsb->tyenv, ty );
}
-/* Bomb out if we can't handle something. */
-__attribute__ ((noreturn))
-static void unimplemented ( HChar* str )
-{
- vex_printf("x86toIR: unimplemented feature\n");
- vpanic(str);
-}
-
/* Various simple conversions */
static UInt extend_s_8to32( UInt x )
@@ -1504,9 +1496,8 @@
if (index_r == R_ESP && base_r == R_EBP) {
UInt d = getUDisp32(delta);
- DIS(buf, "%s0x%x()", sorbTxt(sorb), d);
+ DIS(buf, "%s0x%x(,,)", sorbTxt(sorb), d);
*len = 6;
- vpanic("disAMode(x86):untested amode: 8");
return disAMode_copy2tmp(
handleSegOverride(sorb, mkU32(d)));
}
@@ -2926,7 +2917,7 @@
Int sz, HChar* name, UChar sorb )
{
IRTemp t_inc = newTemp(Ity_I32);
- vassert(sorb == 0);
+ vassert(sorb == 0); /* hmm. so what was the point of passing it in? */
dis_string_op_increment(sz, t_inc);
dis_OP( sz, t_inc );
DIP("%s%c\n", name, nameISize(sz));
@@ -7338,13 +7329,11 @@
goto decode_success;
}
}
- unimplemented("x86 segment override (SEG=CS) prefix");
- /*NOTREACHED*/
- break;
+ /* All other CS override cases are not handled */
+ goto decode_failure;
case 0x36: /* %SS: */
- unimplemented("x86 segment override (SEG=SS) prefix");
- /*NOTREACHED*/
- break;
+ /* SS override cases are not handled */
+ goto decode_failure;
default:
break;
}
@@ -11715,6 +11704,7 @@
case 0x9D: /* POPF */
vassert(sz == 2 || sz == 4);
+ if (sz != 4) goto decode_failure;
vassert(sz == 4); // until we know a sz==2 test case exists
t1 = newTemp(Ity_I32); t2 = newTemp(Ity_I32);
assign(t2, getIReg(4, R_ESP));
@@ -11902,6 +11892,7 @@
case 0x9C: /* PUSHF */ {
vassert(sz == 2 || sz == 4);
+ if (sz != 4) goto decode_failure;
vassert(sz == 4); // wait for sz==2 test case
t1 = newTemp(Ity_I32);
@@ -12003,26 +11994,36 @@
case 0xA4: /* MOVS, no REP prefix */
case 0xA5:
+ if (sorb != 0)
+ goto decode_failure; /* else dis_string_op asserts */
dis_string_op( dis_MOVS, ( opc == 0xA4 ? 1 : sz ), "movs", sorb );
break;
case 0xA6: /* CMPSb, no REP prefix */
case 0xA7:
- dis_string_op( dis_CMPS, ( opc == 0xA6 ? 1 : sz ), "cmps", sorb );
- break;
+ if (sorb != 0)
+ goto decode_failure; /* else dis_string_op asserts */
+ dis_string_op( dis_CMPS, ( opc == 0xA6 ? 1 : sz ), "cmps", sorb );
+ break;
case 0xAA: /* STOS, no REP prefix */
case 0xAB:
+ if (sorb != 0)
+ goto decode_failure; /* else dis_string_op asserts */
dis_string_op( dis_STOS, ( opc == 0xAA ? 1 : sz ), "stos", sorb );
break;
case 0xAC: /* LODS, no REP prefix */
case 0xAD:
+ if (sorb != 0)
+ goto decode_failure; /* else dis_string_op asserts */
dis_string_op( dis_LODS, ( opc == 0xAC ? 1 : sz ), "lods", sorb );
break;
case 0xAE: /* SCAS, no REP prefix */
case 0xAF:
+ if (sorb != 0)
+ goto decode_failure; /* else dis_string_op asserts */
dis_string_op( dis_SCAS, ( opc == 0xAE ? 1 : sz ), "scas", sorb );
break;
@@ -12073,7 +12074,7 @@
/* REPNE prefix insn */
case 0xF2: {
Addr32 eip_orig = guest_EIP_bbstart + delta - 1;
- vassert(sorb == 0);
+ if (sorb != 0) goto decode_failure;
abyte = getIByte(delta); delta++;
if (abyte == 0x66) { sz = 2; abyte = getIByte(delta); delta++; }
@@ -12115,7 +12116,7 @@
for the rest, it means REP) */
case 0xF3: {
Addr32 eip_orig = guest_EIP_bbstart + delta - 1;
- vassert(sorb == 0);
+ if (sorb != 0) goto decode_failure;
abyte = getIByte(delta); delta++;
if (abyte == 0x66) { sz = 2; abyte = getIByte(delta); delta++; }
|
|
From: <js...@ac...> - 2007-04-05 11:40:31
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-04-05 09:00:01 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 == 219 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: Ashley P. <as...@qu...> - 2007-04-05 10:08:42
|
On Wed, 2007-04-04 at 23:45 -0400, Vince Weaver wrote: > > This is something I'd be interested in, if ever I get time to write a > > tool I'd like to be able to look at allocated blocks (as returned by > > malloc) and view the read/write ratio for each one, kind of like massif > > but adding a "usage rate" weighting to the graph. > > I've posted the code for my other two valgrind plugins > (all three can be found here > http://www.csl.cornell.edu/~vince/software.html > feel free to link to them from the valgrind pages) > > My cachetool plugin writes out a memory trace that has in it > info for ever load/store (for data cache simulation), every > basic block entered (for instruction cache simulation), > and every memory allocation/free (because we were tracking heap > object usage). This sounds very promising, I wouldn't want all the data it can provide but it would seem it does everything I want. > I've posted the code to the aforementioned website if you want to look at > it. I haven't tested it for a while. The trace files generated can be > quite large, so usually I'd write the output to a named pipe (mkfifo) and > then have the analysis tool run at the same time reading from it. I'd anticipated it being quite large, I'll pipe in directly into a external process. Ashley, |
|
From: <sv...@va...> - 2007-04-05 04:14:28
|
Author: njn Date: 2007-04-05 05:14:27 +0100 (Thu, 05 Apr 2007) New Revision: 331 Log: fix link Modified: trunk/downloads/variants.html Modified: trunk/downloads/variants.html =================================================================== --- trunk/downloads/variants.html 2007-04-05 04:13:40 UTC (rev 330) +++ trunk/downloads/variants.html 2007-04-05 04:14:27 UTC (rev 331) @@ -90,7 +90,7 @@ occurs, as it occurs.</p> <p><b>Vince Weaver</b> -has written <a href="http://www.brainmurders.demon.co.uk/omega.html">three +has written <a href="http://www.csl.cornell.edu/~vince/software.html">three tools</a>: a cache tool trace generator, a SimPoint data generator, and a TAXI-compatible stream generator. (TAXI decodes pre-decoded x86 instruction </p> |
|
From: <sv...@va...> - 2007-04-05 04:13:41
|
Author: njn Date: 2007-04-05 05:13:40 +0100 (Thu, 05 Apr 2007) New Revision: 330 Log: Add Vince Weaver link. Modified: trunk/downloads/variants.html Modified: trunk/downloads/variants.html =================================================================== --- trunk/downloads/variants.html 2007-04-05 04:11:29 UTC (rev 329) +++ trunk/downloads/variants.html 2007-04-05 04:13:40 UTC (rev 330) @@ -89,7 +89,13 @@ an instant memory leak detector tool designed to give the location that a leak occurs, as it occurs.</p> +<p><b>Vince Weaver</b> +has written <a href="http://www.brainmurders.demon.co.uk/omega.html">three +tools</a>: a cache tool trace generator, a SimPoint data generator, and a +TAXI-compatible stream generator. (TAXI decodes pre-decoded x86 instruction +</p> + <?php break; |
|
From: <sv...@va...> - 2007-04-05 04:11:30
|
Author: njn Date: 2007-04-05 05:11:29 +0100 (Thu, 05 Apr 2007) New Revision: 329 Log: Remove out-of-date link. Modified: trunk/downloads/njn/njn.html Modified: trunk/downloads/njn/njn.html =================================================================== --- trunk/downloads/njn/njn.html 2007-04-05 04:10:46 UTC (rev 328) +++ trunk/downloads/njn/njn.html 2007-04-05 04:11:29 UTC (rev 329) @@ -1,8 +1,5 @@ <h3>Nick Nethercote's Tools</h3> -<p><a href="http://www.cs.utexas.edu/~njn/">http://www.cs.utexas.edu/~njn/</a></p> - - <dl class="spaced"> <dt><b>Bounds Checker:</b> |
|
From: <sv...@va...> - 2007-04-05 04:10:48
|
Author: njn Date: 2007-04-05 05:10:46 +0100 (Thu, 05 Apr 2007) New Revision: 328 Log: don't need memtracer any more, it's in lackey Modified: trunk/downloads/njn/njn.html trunk/downloads/variants.html Modified: trunk/downloads/njn/njn.html =================================================================== --- trunk/downloads/njn/njn.html 2007-04-03 00:28:37 UTC (rev 327) +++ trunk/downloads/njn/njn.html 2007-04-05 04:10:46 UTC (rev 328) @@ -5,21 +5,6 @@ <dl class="spaced"> -<dt><b>Memory Tracer:</b> -<a href="/downloads/njn/valgrind-dullard.tar.bz2">valgrind-dullard (tar.bz2)</a> [925Kb] - Jan 31 2005</dt> - -<dd> -<p>A version of the Valgrind distribution (based on v2.1.2) that -contains an extra tool, Dullard, that traces memory loads and -stores. For each memory access, it shows whether it reads, writes -or modifies memory, and the data address and data size -involved. It is a good starting point for building any Valgrind -tool that needs to know about memory loads and stores. The traces -it produces are not perfect; see the top of -<code>dl_main.c</code> for details.</p> -</dd> - - <dt><b>Bounds Checker:</b> <a href="/downloads/njn/valgrind-annelid.tar.bz2">valgrind-annelid (tar.bz2)</a> [722Kb] - Jan 31 2005</dt> Modified: trunk/downloads/variants.html =================================================================== --- trunk/downloads/variants.html 2007-04-03 00:28:37 UTC (rev 327) +++ trunk/downloads/variants.html 2007-04-05 04:10:46 UTC (rev 328) @@ -38,7 +38,7 @@ <br /> <p><b>Nick Nethercote</b> has built <a href="/downloads/variants.html?njn">several experimental -tools</a>: a Memory Tracer, a Bounds Checker, a Signal-Handler +tools</a>: a Bounds Checker, a Signal-Handler Checker, and a Data Flow Tracer. He also has an experimental Valgrind distribution that has an interactive command line.</p> |
|
From: Vince W. <vi...@cs...> - 2007-04-05 03:45:26
|
> This is something I'd be interested in, if ever I get time to write a > tool I'd like to be able to look at allocated blocks (as returned by > malloc) and view the read/write ratio for each one, kind of like massif > but adding a "usage rate" weighting to the graph. I've posted the code for my other two valgrind plugins (all three can be found here http://www.csl.cornell.edu/~vince/software.html feel free to link to them from the valgrind pages) My cachetool plugin writes out a memory trace that has in it info for ever load/store (for data cache simulation), every basic block entered (for instruction cache simulation), and every memory allocation/free (because we were tracking heap object usage). It passes along extra info in the traces, such as PC for loads and stores. It also passes along the call-trace info for the allocs/stores because we were trying to uniquely identify malloc() call sites. All of this was intended to be used for doing Cache Conscious Data Placement. Unfortunately this project has been side tracked for now. I've posted the code to the aforementioned website if you want to look at it. I haven't tested it for a while. The trace files generated can be quite large, so usually I'd write the output to a named pipe (mkfifo) and then have the analysis tool run at the same time reading from it. Vince |
|
From: Tom H. <th...@cy...> - 2007-04-05 03:11:56
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-04-05 03:00:03 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 == 293 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/tls (stdout) |
|
From: Tom H. <th...@cy...> - 2007-04-05 02:31:16
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-04-05 03:15:02 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 256 tests, 27 stderr failures, 1 stdout failure, 0 posttest 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-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/match-overrun (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/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-04-05 02:23:46
|
Nightly build on dellow ( x86_64, Fedora Core 6 ) started at 2007-04-05 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 == 291 tests, 4 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-04-05 02:19:20
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-04-05 03:05:07 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 291 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: <sv...@va...> - 2007-04-05 00:59:34
|
Author: sewardj
Date: 2007-04-05 01:59:32 +0100 (Thu, 05 Apr 2007)
New Revision: 6694
Log:
Merge r6692 (Handle some more types: {REAL,INTEGER}{4,8} and 2INT.)
Modified:
branches/VALGRIND_3_2_BRANCH/auxprogs/libmpiwrap.c
Modified: branches/VALGRIND_3_2_BRANCH/auxprogs/libmpiwrap.c
===================================================================
--- branches/VALGRIND_3_2_BRANCH/auxprogs/libmpiwrap.c 2007-04-05 00:55:13 UTC (rev 6693)
+++ branches/VALGRIND_3_2_BRANCH/auxprogs/libmpiwrap.c 2007-04-05 00:59:32 UTC (rev 6694)
@@ -242,6 +242,18 @@
# if defined(MPI_UNSIGNED_LONG_LONG)
else if (ty == MPI_UNSIGNED_LONG_LONG) fprintf(f,"UNSIGNED_LONG_LONG");
# endif
+# if defined(MPI_REAL8)
+ else if (ty == MPI_REAL8) fprintf(f, "REAL8");
+# endif
+# if defined(MPI_REAL4)
+ else if (ty == MPI_REAL4) fprintf(f, "REAL4");
+# endif
+# if defined(MPI_INTEGER8)
+ else if (ty == MPI_INTEGER8) fprintf(f, "INTEGER8");
+# endif
+# if defined(MPI_INTEGER4)
+ else if (ty == MPI_INTEGER4) fprintf(f, "INTEGER4");
+# endif
else fprintf(f,"showTy:???");
}
@@ -412,6 +424,19 @@
if (ty == MPI_LONG_DOUBLE) return sizeof_long_double_image();
if (ty == MPI_PACKED) return 1;
+# if defined(MPI_REAL8)
+ if (ty == MPI_REAL8) return sizeof(double);
+# endif
+# if defined(MPI_REAL4)
+ if (ty == MPI_REAL4) return sizeof(float);
+# endif
+# if defined(MPI_INTEGER8)
+ if (ty == MPI_INTEGER8) return sizeof(signed long long int);
+# endif
+# if defined(MPI_INTEGER4)
+ if (ty == MPI_INTEGER4) return sizeof(signed int);
+# endif
+
/* new in MPI2: */
# if defined(MPI_WCHAR)
if (ty == MPI_WCHAR) return sizeof(wchar_t);
@@ -509,6 +534,10 @@
MPI_Aint* addrs = NULL;
MPI_Datatype* dtys = NULL;
+ /* Stuff for limiting how much complaining text it spews out */
+ static int complaints = 3;
+ static int last_complained_about_tycon = -987654321; /* presumably bogus */
+
if (0)
printf("walk_type %p\n", (void*)(unsigned long)ty);
@@ -528,6 +557,12 @@
out these types. At least Open MPI 1.0.1 appears to put
the 'val' field first.
*/
+ if (ty == MPI_2INT) {
+ typedef struct { int val; int loc; } Ty;
+ f(base + offsetof(Ty,val), sizeof(int));
+ f(base + offsetof(Ty,loc), sizeof(int));
+ return;
+ }
if (ty == MPI_LONG_INT) {
typedef struct { long val; int loc; } Ty;
f(base + offsetof(Ty,val), sizeof(long));
@@ -671,14 +706,21 @@
return;
unhandled:
- if (tycon == MPI_COMBINER_NAMED) {
- fprintf(stderr, "%s %5d: walk_type: unhandled base type 0x%lx ",
- preamble, my_pid, (long)ty);
- showTy(stderr, ty);
- fprintf(stderr, "\n");
- } else {
- fprintf(stderr, "%s %5d: walk_type: unhandled combiner 0x%lx\n",
- preamble, my_pid, (long)tycon);
+ /* Complain, but limit the amount of complaining that can happen to
+ the first 3 different unhandled tycons that show up, so as to
+ avoid swamping users with thousands of duplicate messages. */
+ if (complaints > 0 && tycon != last_complained_about_tycon) {
+ complaints--;
+ last_complained_about_tycon = tycon;
+ if (tycon == MPI_COMBINER_NAMED) {
+ fprintf(stderr, "%s %5d: walk_type: unhandled base type 0x%lx ",
+ preamble, my_pid, (long)ty);
+ showTy(stderr, ty);
+ fprintf(stderr, "\n");
+ } else {
+ fprintf(stderr, "%s %5d: walk_type: unhandled combiner 0x%lx\n",
+ preamble, my_pid, (long)tycon);
+ }
}
if (ints) free(ints);
if (addrs) free(addrs);
|
|
From: <sv...@va...> - 2007-04-05 00:55:14
|
Author: sewardj
Date: 2007-04-05 01:55:13 +0100 (Thu, 05 Apr 2007)
New Revision: 6693
Log:
Merge r6575 (Handle type MPI_PACKED and associated functions
PMPI_Packed and PMPI_Unpacked.)
Modified:
branches/VALGRIND_3_2_BRANCH/auxprogs/libmpiwrap.c
Modified: branches/VALGRIND_3_2_BRANCH/auxprogs/libmpiwrap.c
===================================================================
--- branches/VALGRIND_3_2_BRANCH/auxprogs/libmpiwrap.c 2007-04-05 00:35:20 UTC (rev 6692)
+++ branches/VALGRIND_3_2_BRANCH/auxprogs/libmpiwrap.c 2007-04-05 00:55:13 UTC (rev 6693)
@@ -410,8 +410,8 @@
if (ty == MPI_DOUBLE) return sizeof(double);
if (ty == MPI_BYTE) return 1;
if (ty == MPI_LONG_DOUBLE) return sizeof_long_double_image();
+ if (ty == MPI_PACKED) return 1;
- /* MPI_PACKED */
/* new in MPI2: */
# if defined(MPI_WCHAR)
if (ty == MPI_WCHAR) return sizeof(wchar_t);
@@ -1495,6 +1495,107 @@
/*------------------------------------------------------------*/
/*--- ---*/
+/*--- Sec 3.13, Pack and unpack ---*/
+/*--- ---*/
+/*------------------------------------------------------------*/
+
+/* --- Pack --- */
+/* pre: must be readable: position
+ must be readable: (inbuf,incount,datatype)
+ must be writable: outbuf[0 .. outsize-1]
+ must be writable: outbuf[*position ..
+ *position - 1
+ + however much space PMPI_Pack_size
+ says we will need]
+ post: make readable: outbuf[old *position .. new *position]
+*/
+int WRAPPER_FOR(PMPI_Pack)( void* inbuf, int incount, MPI_Datatype datatype,
+ void* outbuf, int outsize,
+ int* position, MPI_Comm comm )
+{
+ OrigFn fn;
+ int err, szB = 0;
+ int position_ORIG = *position;
+ VALGRIND_GET_ORIG_FN(fn);
+ before("Pack");
+ /* stay sane */
+ check_mem_is_defined_untyped(position, sizeof(*position));
+ /* check input */
+ check_mem_is_defined(inbuf, incount, datatype);
+ /* check output area's stated bounds make sense */
+ check_mem_is_addressable_untyped(outbuf, outsize);
+ /* check output area's actual used size properly */
+ err = PMPI_Pack_size( incount, datatype, comm, &szB );
+ if (err == MPI_SUCCESS && szB > 0) {
+ check_mem_is_addressable_untyped(
+ ((char*)outbuf) + position_ORIG, szB
+ );
+ }
+
+ CALL_FN_W_7W(err, fn, inbuf,incount,datatype, outbuf,outsize,position, comm);
+
+ if (err == MPI_SUCCESS && (*position) > position_ORIG) {
+ /* paint output */
+ make_mem_defined_if_addressable_untyped(
+ ((char*)outbuf) + position_ORIG, *position - position_ORIG
+ );
+ }
+ after("Pack", err);
+ return err;
+}
+
+/* --- Unpack --- */
+/* pre: must be readable: position
+ must be writable: (outbuf,outcount,datatype)
+ must be writable: outbuf[0 .. outsize-1]
+ must be writable: outbuf[*position ..
+ *position - 1
+ + however much space PMPI_Pack_size
+ says we will need]
+ post: make readable: (outbuf,outcount,datatype)
+ and also do a readability check of
+ inbuf[old *position .. new *position]
+*/
+int WRAPPER_FOR(PMPI_Unpack)( void* inbuf, int insize, int* position,
+ void* outbuf, int outcount, MPI_Datatype datatype,
+ MPI_Comm comm )
+{
+ OrigFn fn;
+ int err, szB = 0;
+ int position_ORIG = *position;
+ VALGRIND_GET_ORIG_FN(fn);
+ before("Unpack");
+ /* stay sane */
+ check_mem_is_defined_untyped(position, sizeof(*position));
+ /* check output area is accessible */
+ check_mem_is_addressable(outbuf, outcount, datatype);
+ /* check input area's stated bounds make sense */
+ check_mem_is_addressable_untyped(inbuf, insize);
+ /* check input area's actual used size properly */
+ err = PMPI_Pack_size( outcount, datatype, comm, &szB );
+ if (err == MPI_SUCCESS && szB > 0) {
+ check_mem_is_addressable_untyped(
+ ((char*)inbuf) + position_ORIG, szB
+ );
+ }
+
+ CALL_FN_W_7W(err, fn, inbuf,insize,position, outbuf,outcount,datatype, comm);
+
+ if (err == MPI_SUCCESS && (*position) > position_ORIG) {
+ /* recheck input more carefully */
+ check_mem_is_defined_untyped(
+ ((char*)inbuf) + position_ORIG, *position - position_ORIG
+ );
+ /* paint output */
+ make_mem_defined_if_addressable( outbuf, outcount, datatype );
+ }
+ after("Unpack", err);
+ return err;
+}
+
+
+/*------------------------------------------------------------*/
+/*--- ---*/
/*--- Sec 4.4, Broadcast ---*/
/*--- ---*/
/*------------------------------------------------------------*/
@@ -2211,7 +2312,7 @@
DEFAULT_WRAPPER_W_1W(Op_free)
DEFAULT_WRAPPER_W_7W(Pack_external)
DEFAULT_WRAPPER_W_4W(Pack_external_size)
-DEFAULT_WRAPPER_W_7W(Pack)
+/* DEFAULT_WRAPPER_W_7W(Pack) */
DEFAULT_WRAPPER_W_4W(Pack_size)
/* int MPI_Pcontrol(const int level, ...) */
/* DEFAULT_WRAPPER_W_4W(Probe) */
@@ -2287,7 +2388,7 @@
DEFAULT_WRAPPER_W_5W(Type_struct)
DEFAULT_WRAPPER_W_2W(Type_ub)
DEFAULT_WRAPPER_W_5W(Type_vector)
-DEFAULT_WRAPPER_W_7W(Unpack)
+/* DEFAULT_WRAPPER_W_7W(Unpack) */
DEFAULT_WRAPPER_W_3W(Unpublish_name)
DEFAULT_WRAPPER_W_7W(Unpack_external)
/* DEFAULT_WRAPPER_W_3W(Waitall) */
|
|
From: <sv...@va...> - 2007-04-05 00:35:23
|
Author: sewardj
Date: 2007-04-05 01:35:20 +0100 (Thu, 05 Apr 2007)
New Revision: 6692
Log:
Handle some more types: {REAL,INTEGER}{4,8} and 2INT. Also a change
to reduce the number of error messages printed if there is an
unhandled type.
Modified:
trunk/auxprogs/libmpiwrap.c
Modified: trunk/auxprogs/libmpiwrap.c
===================================================================
--- trunk/auxprogs/libmpiwrap.c 2007-04-02 03:11:41 UTC (rev 6691)
+++ trunk/auxprogs/libmpiwrap.c 2007-04-05 00:35:20 UTC (rev 6692)
@@ -256,6 +256,18 @@
# if defined(MPI_UNSIGNED_LONG_LONG)
else if (ty == MPI_UNSIGNED_LONG_LONG) fprintf(f,"UNSIGNED_LONG_LONG");
# endif
+# if defined(MPI_REAL8)
+ else if (ty == MPI_REAL8) fprintf(f, "REAL8");
+# endif
+# if defined(MPI_REAL4)
+ else if (ty == MPI_REAL4) fprintf(f, "REAL4");
+# endif
+# if defined(MPI_INTEGER8)
+ else if (ty == MPI_INTEGER8) fprintf(f, "INTEGER8");
+# endif
+# if defined(MPI_INTEGER4)
+ else if (ty == MPI_INTEGER4) fprintf(f, "INTEGER4");
+# endif
else fprintf(f,"showTy:???");
}
@@ -426,6 +438,19 @@
if (ty == MPI_LONG_DOUBLE) return sizeof_long_double_image();
if (ty == MPI_PACKED) return 1;
+# if defined(MPI_REAL8)
+ if (ty == MPI_REAL8) return sizeof(double);
+# endif
+# if defined(MPI_REAL4)
+ if (ty == MPI_REAL4) return sizeof(float);
+# endif
+# if defined(MPI_INTEGER8)
+ if (ty == MPI_INTEGER8) return sizeof(signed long long int);
+# endif
+# if defined(MPI_INTEGER4)
+ if (ty == MPI_INTEGER4) return sizeof(signed int);
+# endif
+
/* new in MPI2: */
# if defined(MPI_WCHAR)
if (ty == MPI_WCHAR) return sizeof(wchar_t);
@@ -523,6 +548,10 @@
MPI_Aint* addrs = NULL;
MPI_Datatype* dtys = NULL;
+ /* Stuff for limiting how much complaining text it spews out */
+ static int complaints = 3;
+ static int last_complained_about_tycon = -987654321; /* presumably bogus */
+
if (0)
printf("walk_type %p\n", (void*)(unsigned long)ty);
@@ -542,6 +571,12 @@
out these types. At least Open MPI 1.0.1 appears to put
the 'val' field first.
*/
+ if (ty == MPI_2INT) {
+ typedef struct { int val; int loc; } Ty;
+ f(base + offsetof(Ty,val), sizeof(int));
+ f(base + offsetof(Ty,loc), sizeof(int));
+ return;
+ }
if (ty == MPI_LONG_INT) {
typedef struct { long val; int loc; } Ty;
f(base + offsetof(Ty,val), sizeof(long));
@@ -685,14 +720,21 @@
return;
unhandled:
- if (tycon == MPI_COMBINER_NAMED) {
- fprintf(stderr, "%s %5d: walk_type: unhandled base type 0x%lx ",
- preamble, my_pid, (long)ty);
- showTy(stderr, ty);
- fprintf(stderr, "\n");
- } else {
- fprintf(stderr, "%s %5d: walk_type: unhandled combiner 0x%lx\n",
- preamble, my_pid, (long)tycon);
+ /* Complain, but limit the amount of complaining that can happen to
+ the first 3 different unhandled tycons that show up, so as to
+ avoid swamping users with thousands of duplicate messages. */
+ if (complaints > 0 && tycon != last_complained_about_tycon) {
+ complaints--;
+ last_complained_about_tycon = tycon;
+ if (tycon == MPI_COMBINER_NAMED) {
+ fprintf(stderr, "%s %5d: walk_type: unhandled base type 0x%lx ",
+ preamble, my_pid, (long)ty);
+ showTy(stderr, ty);
+ fprintf(stderr, "\n");
+ } else {
+ fprintf(stderr, "%s %5d: walk_type: unhandled combiner 0x%lx\n",
+ preamble, my_pid, (long)tycon);
+ }
}
if (ints) free(ints);
if (addrs) free(addrs);
|
|
From: <js...@ac...> - 2007-04-05 00:17:00
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-04-05 02:00:01 CEST 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 == 226 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |