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
(21) |
|
2
(19) |
3
(33) |
4
(24) |
5
(18) |
6
(13) |
7
(22) |
8
(21) |
|
9
(38) |
10
(25) |
11
(20) |
12
(27) |
13
(43) |
14
(9) |
15
(19) |
|
16
(37) |
17
(19) |
18
(13) |
19
(11) |
20
(8) |
21
(11) |
22
(25) |
|
23
(21) |
24
(30) |
25
(18) |
26
(11) |
27
(10) |
28
(14) |
29
(40) |
|
30
(24) |
31
(14) |
|
|
|
|
|
|
From: Nicholas N. <nj...@cs...> - 2008-03-10 21:02:10
|
On Mon, 10 Mar 2008, Brad Hards wrote:
> It appears to be working for me, although some of the output looks a bit
> strange:
> 5: 12:void TestQEmf::check()
> -: 13:{
> 9: 14: QVERIFY( true );
> 2: 15: QWinMetaFile wmf;
> 5: 16: QImage pic(1000, 800, QImage::Format_ARGB32_Premultiplied);
> 20: 17: QVERIFY( wmf.load( "1.emf" ) );
> -: 18:
> 14: 19: wmf.paint( &pic );
> 4: 20:}
>
> I'm not too worried - all I really care about is executed-or-not, but it does
> make the output look unreliable.
Why is it strange? I've seen cases where compiler optimisations make lines
that you think should be executable become non-executable, but this doesn't
seem to be one of them. Well, whether the function name line and the '{'
and '}' lines are executable depends on what the compiler does.
> I was a bit confused by the vc_annotate tool usage info - patch attached. This
> also switches it to be generated from vc_annotate.in, so the patch is a bit
> hard to read. Basically, it changes the usage to look like this:
> usage: vc_annotate [options] vcov.out (source-files...)
>
> From some initial usage, it would be most useful to be able to exclude a
> range of files and directories. For example, always exclude
> coregrind/m_trampoline.S, and provide an option so I can specify to not do
> coverage on my test harness files and some include directories.
I'm on holiday for a couple of weeks, but I'll have a look at this when I
get back. Thanks.
Nick
|
|
From: Nicholas N. <nj...@cs...> - 2008-03-10 20:52:09
|
On Sun, 9 Mar 2008, Nuno Lopes wrote: > I'm currently attending a Virtual Execution Environment class at the > university this semester. For this class I need to do a project (with 2 > colleagues) about something related with the class (VMs, etc..). The project > duration is about 1 month. > My idea (still pending the teacher's authorization) was to do something with > valgrind, more specifically implement some binary code optimization over the > VEX IR. Do you think this is feasible in the given time frame? And which > optimizations are currently implemented and which ones do you think are > interesting to implement? > > We are also open to other ideas (as long as they fit in the class subject). > Of course we'll give back the code when we finish the project. I think it's certainly feasible, and a nice idea for a project. http://www.valgrind.org/docs/valgrind2007.pdf has some info on optimisations performed in section 3.7. Note especially that there are two optimisation phases. You'll want to read the surrounding sections (and probably the whole paper) to make sense of it. VEX/priv/ir/iropt.c is the main file controlling Vex optimisation, I believe. It has this comment near the top: Transformation order ~~~~~~~~~~~~~~~~~~~~ There are three levels of optimisation, controlled by vex_control.iropt_level. Define first: "Cheap transformations" are the following sequence: * Redundant-Get removal * Redundant-Put removal * Constant propagation/folding * Dead code removal * Specialisation of clean helper functions * Dead code removal "Expensive transformations" are the following sequence: * CSE * Folding of add/sub chains * Redundant-GetI removal * Redundant-PutI removal * Dead code removal Then the transformations are as follows, as defined by vex_control.iropt_level: Level 0: * Flatten into atomic form. Level 1: the following sequence: * Flatten into atomic form. * Cheap transformations. Level 2: the following sequence * Flatten into atomic form. * Cheap transformations. * If block contains any floating or vector types, CSE. * If block contains GetI or PutI, Expensive transformations. * Try unrolling loops. Three possible outcomes: - No effect: do nothing more. - Unrolled a loop, and block does not contain GetI or PutI: Do: * CSE * Dead code removal - Unrolled a loop, and block contains GetI or PutI: Do: * Expensive transformations * Cheap transformations The comments in VEX/pub/libvex_ir.h is the best documentation for Vex. As the Valgrind paper says, these are fairly heavyweight optimisations for a binary translation system. You could try to do some more compiler-style optimisations, but I think the scope for improvement there is not so great. But I could be wrong -- Julian, what do you think? A very interesting project you could be try would be to implement chaining for Vex -- the Valgrind paper (above) talks about this. (Section 2.3.6 of http://www.valgrind.org/docs/phd2004.pdf discusses the old implementation of chaining that was in pre-Vex Valgrind -- you can see the actual implementation in Valgrind 2.4.1 at http://www.valgrind.org/downloads/old.html.) Another interesting one would be to try to stage the compiler somehow -- recompile hot code fragments more aggressively, as frameworks like Pin does. Both of those would be quite challenging, though, because they would require changing how Valgrind manages its translated code blocks. Just doing new intra-block optimisations would be easier because you'd just be adding more optimisation passes (but less likely to achieve interesting results, as I said). An important question you should consider early is what your goals are. More specifically, are you trying to speed up Valgrind's code when no instrumentation is present? In one way, that's the obvious thing to do, but it's also the least interesting thing to do (the paper talks about this in section 5.4). A more interesting thing is to speed up any of the real existing tools, especially Memcheck, since that's the most widely used. As for giving the code you develop back, there's a complication -- Julian is the sole author and thus owns the copyright for the Vex part of Valgrind. This means that accepting external contributions for Vex is more complicated than the rest of Valgrind. He might have more to add. If you have more questions, feel free to ask. Nick |
|
From: <sv...@va...> - 2008-03-10 20:06:05
|
Author: bart Date: 2008-03-10 20:05:57 +0000 (Mon, 10 Mar 2008) New Revision: 7635 Log: Added information about OpenMP. Modified: trunk/exp-drd/docs/README.txt Modified: trunk/exp-drd/docs/README.txt =================================================================== --- trunk/exp-drd/docs/README.txt 2008-03-10 20:05:07 UTC (rev 7634) +++ trunk/exp-drd/docs/README.txt 2008-03-10 20:05:57 UTC (rev 7635) @@ -30,10 +30,16 @@ all possible data races or deadlocks via source reading. This is why tools for detecting data races and deadlocks at runtime are essential. -The de facto standard library for multithreading with the C and C++ -programming languages on Unix systems is the POSIX threads library, -also known as pthreads. The exp-drd tool has been developed for -multithreaded software that uses the POSIX threads library. +There exist parallellizing compilers that give good results for a +certain class of high performance computing (HPC) applications. If you +are not using a parallelizing compiler, you have to specify explicitly +in the source code how your program should use threads. How to specify +this depends on the programming language and the operating system you +are using. The two options on Unix systems are for C and C++ are the +POSIX threads library and OpenMP. OpenMP is best suited for HPC +applications. For other applications, e.g. server or embedded +software, you can use the POSIX threads library directly or a library +that is built on top of it. Data Races @@ -240,14 +246,14 @@ Acknowledgements ---------------- -The exp-drd tool is built on top of the Valgrind core and VEX, which +The DRD tool is built on top of the Valgrind core and VEX, which proved to be an excellent infrastructure for building such a tool. During 2006, the early versions of drd were improved via helpful feedback of Julian Seward and Nicholas Nethercote. Any bugs are my responsibility of course. -Some of the regression tests used to test exp-drd were developed by +Some of the regression tests used to test DRD were developed by Julian Seward as regression tests for the Helgrind tool. I would also like to thank Michiel Ronsse for introducing me a long |
|
From: <sv...@va...> - 2008-03-10 20:05:25
|
Author: bart Date: 2008-03-10 20:05:07 +0000 (Mon, 10 Mar 2008) New Revision: 7634 Log: Updated to do list. Modified: trunk/exp-drd/TODO.txt Modified: trunk/exp-drd/TODO.txt =================================================================== --- trunk/exp-drd/TODO.txt 2008-03-10 19:38:04 UTC (rev 7633) +++ trunk/exp-drd/TODO.txt 2008-03-10 20:05:07 UTC (rev 7634) @@ -10,18 +10,23 @@ - Discuss on the Valgrind mailing list how to make it possible to call POSIX thread synchronization primitives from client code (drd_intercepts.c) without triggering Valgrind's redirection mechanism. +- Make sure -v works again with exp-drd. - Continue the discussion on the Valgrind mailing list about docbook and 'make dist'. - Continue the discussion on the Valgrind mailing list about -Wformat. - Enable format string checking for DRD during compilation. +- Propose to modify tl_assert() / vg_assert() such that it uses + __builtin_expect. - Explain on the Valgrind mailing list the difference between a bus lock and acquire / release labels. +- Add configure tests for the name of the 'kind' member in pthread_mutex_t. - Find out why a race is reported on std::string::string(std::string const&) (stc test case 16). +- Find out why no races are reported on matinv_openmp.c when "private(k)" is + removed. - Add support for objects that are shared over threads and that use reference counting, e.g. std::string -- no races should be reported on the reference count. -- Add a regression test for pthread_mutex_timedlock(). - Add test programs for destroying a condition variable / semaphore / barrier being waited upon. - Add OpenMP examples to the regression tests. @@ -34,13 +39,15 @@ - testing on PPC and AIX (current implementation is only tested on X86 and AMD64). - Convert the array in drd_thread.c with thread information into an OSet. +- Optimize run time of the following test case: + ./vg-in-place --tool=exp-drd exp-drd/tests/matinv 100 - Testing ~~~~~~~ - testing with more complex multithreaded test programs. - test exp-drd's performance with the SPLASH-2 software, e.g. fft - (http://www-flash.stanford.edu/apps/SPLASH/). + (http://www-flash.stanford.edu/apps/SPLASH/) or the PARSEC benchmark + (http://parsec.cs.princeton.edu/license.htm). - test with Synfig Studio (see also http://bugs.kde.org/show_bug.cgi?id=158555) - test with some OpenMP examples. See also http://en.wikipedia.org/wiki/OpenMP. |
|
From: Bart V. A. <bar...@gm...> - 2008-03-10 20:01:53
|
On Mon, Mar 10, 2008 at 12:03 PM, Ali Jannesari <a.j...@gm...> wrote: > > Here is a simple omp example for a data race detection which you could: > http://developers.sun.com/sunstudio/downloads/ssx/tha/tha_using.html > > Also there is a list of benchmarks (e.g parsec, SPEC OMP2001) which might > be useful to test DRD as they are implemented in OMP and POSIX threads: > http://parsec.cs.princeton.edu/overview.htm Thanks, I will have a look at it. > I am trying to choose some of them to test on Helgrind. > > I am also interested in results produced by DRD. I found out today that there are no data races printed by DRD on OpenMP programs. This might be due to (false) ordering introduced by libgomp's barrier implementation -- I will have to look further into this, and I will let you know when this issue is fixed. Bart. |
|
From: Bart V. A. <bar...@gm...> - 2008-03-10 19:46:08
|
On Mon, Mar 10, 2008 at 12:04 PM, Ali Jannesari <a.j...@gm...> wrote: > > I'm not sure the gcc 4.2.3 > > implementation of libgomp is race-free. See also > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35517. > > Yes I see. I didn't used gcc 4.2.3 before. Now I start to use gcc 4.2.3 > compiler and test with Helgrind. By this time I have closed the aforementioned gcc bugzilla item -- the problem was in my test program, not in gcc or libgomp. Bart. |
|
From: <sv...@va...> - 2008-03-10 19:38:03
|
Author: bart Date: 2008-03-10 19:38:04 +0000 (Mon, 10 Mar 2008) New Revision: 7633 Log: Make sure this test is only run if the executable matinv_openmp has been compiled. Modified: trunk/exp-drd/tests/matinv_openmp.vgtest Modified: trunk/exp-drd/tests/matinv_openmp.vgtest =================================================================== --- trunk/exp-drd/tests/matinv_openmp.vgtest 2008-03-10 19:26:42 UTC (rev 7632) +++ trunk/exp-drd/tests/matinv_openmp.vgtest 2008-03-10 19:38:04 UTC (rev 7633) @@ -1,2 +1,3 @@ +prereq: test -e matinv_openmp prog: matinv_openmp args: 30 15 1 |
|
From: <sv...@va...> - 2008-03-10 19:26:37
|
Author: bart Date: 2008-03-10 19:26:42 +0000 (Mon, 10 Mar 2008) New Revision: 7632 Log: Added omp_prime.c Added: trunk/exp-drd/tests/omp_prime.c Modified: trunk/exp-drd/tests/Makefile.am Modified: trunk/exp-drd/tests/Makefile.am =================================================================== --- trunk/exp-drd/tests/Makefile.am 2008-03-10 19:18:20 UTC (rev 7631) +++ trunk/exp-drd/tests/Makefile.am 2008-03-10 19:26:42 UTC (rev 7632) @@ -30,8 +30,8 @@ hg02_deadlock.stderr.exp-linuxthreads \ hg02_deadlock.vgtest \ hg03_inherit.stderr.exp \ + hg03_inherit.stderr.exp-linuxthreads \ hg03_inherit.stderr.exp2 \ - hg03_inherit.stderr.exp-linuxthreads \ hg03_inherit.vgtest \ hg04_race.stderr.exp \ hg04_race.stderr.exp-linuxthreads \ @@ -51,6 +51,9 @@ matinv.stdout.exp \ matinv.stdout.exp-linuxthreads \ matinv.vgtest \ + matinv_openmp.stderr.exp \ + matinv_openmp.stdout.exp \ + matinv_openmp.vgtest \ pth_barrier.stderr.exp \ pth_barrier.stderr.exp-linuxthreads \ pth_barrier.vgtest \ @@ -234,7 +237,7 @@ tc24_nonzero_sem \ trylock -check_PROGRAMS_OPENMP = matinv_openmp +check_PROGRAMS_OPENMP = omp_prime matinv_openmp if HAVE_GCC_FOPENMP check_PROGRAMS = $(check_PROGRAMS_COMMON) $(check_PROGRAMS_OPENMP) @@ -272,12 +275,6 @@ matinv_SOURCES = matinv.c matinv_LDADD = -lpthread -lm -if HAVE_GCC_FOPENMP -matinv_openmp_SOURCES = matinv_openmp.c -matinv_openmp_CFLAGS = -fopenmp -matinv_openmp_LDADD = -lm -endif - pth_barrier_SOURCES = pth_barrier.c pth_barrier_LDADD = -lpthread @@ -376,3 +373,13 @@ trylock_SOURCES = trylock.c trylock_LDADD = -lpthread -lrt + +if HAVE_GCC_FOPENMP +matinv_openmp_SOURCES = matinv_openmp.c +matinv_openmp_CFLAGS = -fopenmp +matinv_openmp_LDADD = -lm + +omp_prime_SOURCES = omp_prime.c +omp_prime_CFLAGS = -fopenmp +omp_prime_LDADD = -lm +endif Added: trunk/exp-drd/tests/omp_prime.c =================================================================== --- trunk/exp-drd/tests/omp_prime.c (rev 0) +++ trunk/exp-drd/tests/omp_prime.c 2008-03-10 19:26:42 UTC (rev 7632) @@ -0,0 +1,77 @@ +/** An OpenMP example. + * Based on the example listed on the following web page: + * http://developers.sun.com/sunstudio/downloads/ssx/tha/tha_using.html + */ + + +#include <assert.h> +#include <math.h> +#include <omp.h> +#include <stdio.h> +#include <stdlib.h> + + +static int is_prime(int* const pflag, int v) +{ + int i; + int bound = floor(sqrt ((double)v)) + 1; + + for (i = 2; i < bound; i++) + { + /* No need to check against known composites */ + if (!pflag[i]) + continue; + if (v % i == 0) + { + pflag[v] = 0; + return 0; + } + } + return (v > 1); +} + +int main(int argc, char **argv) +{ + int i; + int total = 0; + const int n = argc > 1 ? atoi(argv[1]) : 300; + const int num_threads = argc > 2 ? atoi(argv[2]) : 4; + int* primes; + int* pflag; + + // Not the most user-friendly way to do error checking, but better than + // nothing. + assert(n > 2); + assert(num_threads >= 1); + + primes = malloc(n * sizeof(primes[0])); + pflag = malloc(n * sizeof(pflag[0])); + + omp_set_num_threads(num_threads); + omp_set_dynamic(0); + + for (i = 0; i < n; i++) { + pflag[i] = 1; + } + +#pragma omp parallel for + for (i = 2; i < n; i++) + { + if (is_prime(pflag, i)) + { + primes[total] = i; + total++; + } + } + printf("Number of prime numbers between 2 and %d: %d\n", + n, total); + for (i = 0; i < total; i++) + { + printf("%d\n", primes[i]); + } + + free(pflag); + free(primes); + + return 0; +} |
|
From: <sv...@va...> - 2008-03-10 19:18:16
|
Author: bart Date: 2008-03-10 19:18:20 +0000 (Mon, 10 Mar 2008) New Revision: 7631 Log: Added to repository. Added: trunk/exp-drd/tests/matinv_openmp.stderr.exp trunk/exp-drd/tests/matinv_openmp.stdout.exp Added: trunk/exp-drd/tests/matinv_openmp.stderr.exp =================================================================== --- trunk/exp-drd/tests/matinv_openmp.stderr.exp (rev 0) +++ trunk/exp-drd/tests/matinv_openmp.stderr.exp 2008-03-10 19:18:20 UTC (rev 7631) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/matinv_openmp.stdout.exp =================================================================== --- trunk/exp-drd/tests/matinv_openmp.stdout.exp (rev 0) +++ trunk/exp-drd/tests/matinv_openmp.stdout.exp 2008-03-10 19:18:20 UTC (rev 7631) @@ -0,0 +1 @@ +Error within bounds. |
|
From: <sv...@va...> - 2008-03-10 19:17:43
|
Author: bart
Date: 2008-03-10 19:17:46 +0000 (Mon, 10 Mar 2008)
New Revision: 7630
Log:
Number of threads is now a command line argument.
Added:
trunk/exp-drd/tests/matinv_openmp.vgtest
Modified:
trunk/exp-drd/tests/matinv_openmp.c
Modified: trunk/exp-drd/tests/matinv_openmp.c
===================================================================
--- trunk/exp-drd/tests/matinv_openmp.c 2008-03-10 18:37:22 UTC (rev 7629)
+++ trunk/exp-drd/tests/matinv_openmp.c 2008-03-10 19:17:46 UTC (rev 7630)
@@ -14,8 +14,9 @@
#include <assert.h>
#include <math.h>
+#include <omp.h>
+#include <stdio.h>
#include <stdlib.h>
-#include <stdio.h>
/*********************/
@@ -250,6 +251,7 @@
int main(int argc, char** argv)
{
int matrix_size;
+ int nthread;
int silent;
elem_t *a, *inv, *prod;
elem_t eps;
@@ -257,8 +259,12 @@
double ratio;
matrix_size = (argc > 1) ? atoi(argv[1]) : 3;
- silent = (argc > 2) ? atoi(argv[2]) : 0;
+ nthread = (argc > 2) ? atoi(argv[2]) : 3;
+ silent = (argc > 3) ? atoi(argv[3]) : 0;
+ omp_set_num_threads(nthread);
+ omp_set_dynamic(0);
+
eps = epsilon();
a = new_matrix(matrix_size, matrix_size);
init_matrix(a, matrix_size, matrix_size);
Added: trunk/exp-drd/tests/matinv_openmp.vgtest
===================================================================
--- trunk/exp-drd/tests/matinv_openmp.vgtest (rev 0)
+++ trunk/exp-drd/tests/matinv_openmp.vgtest 2008-03-10 19:17:46 UTC (rev 7630)
@@ -0,0 +1,2 @@
+prog: matinv_openmp
+args: 30 15 1
|
|
From: Bart V. A. <bar...@gm...> - 2008-03-10 18:57:47
|
On Sun, Mar 9, 2008 at 10:15 PM, Julian Seward <js...@ac...> wrote: > On Sunday 09 March 2008 14:38, Bart Van Assche wrote: > > As far as I understood the libgomp source code directly, libgomp has > > its own barrier implementation based on the futex system call. This > > means that if I want to support OpenMP in DRD, I have to intercept the > > futex system call. > > sys_futex is only called (iow, the kernel is only involved) when a > lock is contended. Since that is in general very rare, monitoring > sys_futex will not work as you will miss most inter-thread dependencies. > > > Is there a better way than adding calls to > > appropriate tracking functions in PRE(sys_futex) and POST(sys_futex) > > (defined in coregrind/m_syswrap/syswrap-linux.c) ? > > Patch libgomp as described in the README in the tarball and make > sure you configure the gcc build with --disable-linux-futex. What I had in mind is to handle sys_futex() only when it is not called from inside the POSIX threads library. Recompiling with --disable-linux-futex is an even better solution from the point of view of Helgrind and DRD. Can you explain the purpose of the libgomp patch ? DRD does not report any false positives after recompiling unmodified gcc 4.2.3 sources with --disable-linux-futex. The most convenient solution for Valgrind users is that they are able to use the libgomp library provided with their Linux distribution. I'm not sure we will be able to convince the gcc developers and/or Linux distributors to make --disable-linux-futex the default. Is it easy to intercept system calls like sys_futex() at instrumentation time, such that I do not have to modify the core/tool interface ? Bart. |
|
From: <sv...@va...> - 2008-03-10 18:37:32
|
Author: bart
Date: 2008-03-10 18:37:22 +0000 (Mon, 10 Mar 2008)
New Revision: 7629
Log:
Removed too restrictive assert.
Modified:
trunk/exp-drd/drd_thread.c
Modified: trunk/exp-drd/drd_thread.c
===================================================================
--- trunk/exp-drd/drd_thread.c 2008-03-10 18:35:03 UTC (rev 7628)
+++ trunk/exp-drd/drd_thread.c 2008-03-10 18:37:22 UTC (rev 7629)
@@ -430,7 +430,6 @@
DrdThreadId thread_get_running_tid(void)
{
- tl_assert(VG_(get_running_tid)() == s_vg_running_tid);
tl_assert(s_drd_running_tid != DRD_INVALID_THREADID);
return s_drd_running_tid;
}
|
|
From: <sv...@va...> - 2008-03-10 18:35:03
|
Author: bart
Date: 2008-03-10 18:35:03 +0000 (Mon, 10 Mar 2008)
New Revision: 7628
Log:
Removed duplicate code.
Modified:
trunk/exp-drd/drd_main.c
Modified: trunk/exp-drd/drd_main.c
===================================================================
--- trunk/exp-drd/drd_main.c 2008-03-10 18:32:51 UTC (rev 7627)
+++ trunk/exp-drd/drd_main.c 2008-03-10 18:35:03 UTC (rev 7628)
@@ -55,7 +55,6 @@
// Function declarations.
static void drd_start_client_code(const ThreadId tid, const ULong bbs_done);
-static void drd_set_running_tid(const ThreadId tid);
// Local variables.
@@ -436,7 +435,7 @@
{
DrdThreadId drd_tid;
- drd_set_running_tid(tid);
+ tl_assert(VG_(get_running_tid)() == tid);
drd_tid = VgThreadIdToDrdThreadId(tid);
if (drd_trace_fork_join)
@@ -705,27 +704,10 @@
return bb;
}
-static void drd_set_running_tid(const ThreadId vg_tid)
-{
- static ThreadId s_last_vg_tid = VG_INVALID_THREADID;
- if (vg_tid != s_last_vg_tid)
- {
- const DrdThreadId drd_tid = VgThreadIdToDrdThreadId(vg_tid);
- tl_assert(drd_tid != DRD_INVALID_THREADID);
- s_last_vg_tid = vg_tid;
- if (drd_trace_fork_join)
- {
- VG_(message)(Vg_DebugMsg,
- "drd_track_thread_run tid = %d / drd tid %d",
- vg_tid, drd_tid);
- }
- thread_set_running_tid(vg_tid, drd_tid);
- }
-}
-
static void drd_start_client_code(const ThreadId tid, const ULong bbs_done)
{
- drd_set_running_tid(tid);
+ tl_assert(tid == VG_(get_running_tid)());
+ thread_set_vg_running_tid(tid);
}
static
|
|
From: <sv...@va...> - 2008-03-10 18:32:48
|
Author: bart
Date: 2008-03-10 18:32:51 +0000 (Mon, 10 Mar 2008)
New Revision: 7627
Log:
Fixed race condition.
Modified:
trunk/exp-drd/tests/matinv_openmp.c
Modified: trunk/exp-drd/tests/matinv_openmp.c
===================================================================
--- trunk/exp-drd/tests/matinv_openmp.c 2008-03-10 17:57:41 UTC (rev 7626)
+++ trunk/exp-drd/tests/matinv_openmp.c 2008-03-10 18:32:51 UTC (rev 7627)
@@ -185,7 +185,7 @@
}
// Reduce all rows j != i.
-#pragma omp parallel for
+#pragma omp parallel for private(j, k)
for (j = 0; j < rows; j++)
{
if (i != j)
|
|
From: <sv...@va...> - 2008-03-10 17:57:51
|
Author: bart
Date: 2008-03-10 17:57:41 +0000 (Mon, 10 Mar 2008)
New Revision: 7626
Log:
Made test for OpenMP more complete.
Modified:
trunk/configure.in
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2008-03-09 21:09:05 UTC (rev 7625)
+++ trunk/configure.in 2008-03-10 17:57:41 UTC (rev 7626)
@@ -550,14 +550,16 @@
fi
-# does this compiler support -fopenmp ?
-AC_MSG_CHECKING([if gcc accepts -fopenmp])
+# does this compiler support -fopenmp, does it have the include file
+# <omp.h> and does it have libgomp ?
+AC_MSG_CHECKING([if gcc supports OpenMP])
safe_CFLAGS=$CFLAGS
CFLAGS="-fopenmp"
AC_TRY_COMPILE(, [
-int main () { return 0 ; }
+#include <omp.h>
+int main () { omp_set_dynamic(0); return 0; }
],
[
ac_have_gcc_fopenmp=yes
|
|
From: SANDYA M. <san...@ya...> - 2008-03-10 15:51:55
|
Hi, I came across an old mail thread in this forum which discussed memory consumption overhead in helgrind. http://www.mail-archive.com/val...@li.../msg01905.html. I was wondering whether, instead of tracking all data addresses, how badly a tool which does the tracking of locksets based on PC addresses for load/store accesses would do? Though such a mechanism can have plenty of false positives (due to same piece of code used for accessing different data, such as updating a linked list for different kinds of list, with different locks) and false negatives as well. But such a rough tool can serve as a first pass for pruning the candidates for a tool using lockset discipline on data addresses. Has there been any previous tool which may have tried this approach? The reason for thinking that such a pass may reduce memory consumption is we donot need to track whole linked lists etc when the list is protected always by same lock for all its elements, and hence we donot need to track all addresses in the list. Another thought was whether the switch from tracking locking discipline based on PC addresses to data addresses can be made on the fly. Ie.once a PC location is accessed with a different incoming thread lockset from the candidate lockset,we can start tracking that data address of that memory access as normally being done for any lockset based detector such as helgrind. Thanks! sandya ____________________________________________________________________________________ Never miss a thing. Make Yahoo your home page. http://www.yahoo.com/r/hs |
|
From: Ali J. <a.j...@gm...> - 2008-03-10 11:04:30
|
Hi Bart > > I'm interested to learn which compiler and which compiler version you > use for compiling OpenMP programs ? generally I am using gcc version 4.2.1 to compile Openmp programs. > I'm not sure the gcc 4.2.3 > implementation of libgomp is race-free. See also > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35517. > Yes I see. I didn't used gcc 4.2.3 before. Now I start to use gcc 4.2.3 compiler and test with Helgrind. Ali |
|
From: Ali J. <a.j...@gm...> - 2008-03-10 11:03:39
|
Hi Bart > > If you can post the source code of a small OpenMP example or show me a > website where I can find OpenMP examples, I can make sure that DRD > works fine with OpenMP software. Here is a simple omp example for a data race detection which you could: http://developers.sun.com/sunstudio/downloads/ssx/tha/tha_using.html Also there is a list of benchmarks (e.g parsec, SPEC OMP2001) which might be useful to test DRD as they are implemented in OMP and POSIX threads: http://parsec.cs.princeton.edu/overview.htm I am trying to choose some of them to test on Helgrind. I am also interested in results produced by DRD. Ali |
|
From: Tom H. <th...@cy...> - 2008-03-10 06:14:14
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2008-03-10 03:15:05 GMT 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 == 378 tests, 78 stderr failures, 1 stdout failure, 29 post 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/lsframe1 (stderr) memcheck/tests/lsframe2 (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/noisy_child (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/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/bug152022 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) massif/tests/alloc-fns-A (post) massif/tests/alloc-fns-B (post) massif/tests/basic (post) massif/tests/basic2 (post) massif/tests/big-alloc (post) massif/tests/culling1 (stderr) massif/tests/culling2 (stderr) massif/tests/custom_alloc (post) massif/tests/deep-A (post) massif/tests/deep-B (stderr) massif/tests/deep-B (post) massif/tests/deep-C (stderr) massif/tests/deep-C (post) massif/tests/deep-D (post) massif/tests/ignoring (post) massif/tests/insig (post) massif/tests/long-names (post) massif/tests/long-time (post) massif/tests/new-cpp (post) massif/tests/null (post) massif/tests/one (post) massif/tests/overloaded-new (post) massif/tests/peak (post) massif/tests/peak2 (stderr) massif/tests/peak2 (post) massif/tests/realloc (stderr) massif/tests/realloc (post) massif/tests/thresholds_0_0 (post) massif/tests/thresholds_0_10 (post) massif/tests/thresholds_10_0 (post) massif/tests/thresholds_10_10 (post) massif/tests/thresholds_5_0 (post) massif/tests/thresholds_5_10 (post) massif/tests/zero1 (post) massif/tests/zero2 (post) none/tests/blockfault (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/shell (stderr) none/tests/shell_valid1 (stderr) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) exp-drd/tests/tc09_bad_unlock (stderr) exp-drd/tests/tc12_rwl_trivial (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 == 377 tests, 78 stderr failures, 1 stdout failure, 29 post 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/lsframe1 (stderr) memcheck/tests/lsframe2 (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/noisy_child (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/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/bug152022 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) massif/tests/alloc-fns-A (post) massif/tests/alloc-fns-B (post) massif/tests/basic (post) massif/tests/basic2 (post) massif/tests/big-alloc (post) massif/tests/culling1 (stderr) massif/tests/culling2 (stderr) massif/tests/custom_alloc (post) massif/tests/deep-A (post) massif/tests/deep-B (stderr) massif/tests/deep-B (post) massif/tests/deep-C (stderr) massif/tests/deep-C (post) massif/tests/deep-D (post) massif/tests/ignoring (post) massif/tests/insig (post) massif/tests/long-names (post) massif/tests/long-time (post) massif/tests/new-cpp (post) massif/tests/null (post) massif/tests/one (post) massif/tests/overloaded-new (post) massif/tests/peak (post) massif/tests/peak2 (stderr) massif/tests/peak2 (post) massif/tests/realloc (stderr) massif/tests/realloc (post) massif/tests/thresholds_0_0 (post) massif/tests/thresholds_0_10 (post) massif/tests/thresholds_10_0 (post) massif/tests/thresholds_10_10 (post) massif/tests/thresholds_5_0 (post) massif/tests/thresholds_5_10 (post) massif/tests/zero1 (post) massif/tests/zero2 (post) none/tests/blockfault (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/shell (stderr) none/tests/shell_valid1 (stderr) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) exp-drd/tests/tc09_bad_unlock (stderr) exp-drd/tests/tc12_rwl_trivial (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 10 04:59:50 2008 --- new.short Mon Mar 10 06:14:17 2008 *************** *** 8,10 **** ! == 377 tests, 78 stderr failures, 1 stdout failure, 29 post failures == memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 378 tests, 78 stderr failures, 1 stdout failure, 29 post failures == memcheck/tests/addressable (stderr) |
|
From: Tom H. <th...@cy...> - 2008-03-10 04:26:07
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-03-10 03:05:05 GMT 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 == 412 tests, 6 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 411 tests, 6 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 10 03:45:04 2008 --- new.short Mon Mar 10 04:26:08 2008 *************** *** 8,10 **** ! == 411 tests, 6 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 412 tests, 6 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) |
|
From: Brad H. <br...@fr...> - 2008-03-10 04:10:34
|
G'day Nick,
I finally got some time to try the vcov tool (from branches/VCOV).
It appears to be working for me, although some of the output looks a bit
strange:
5: 12:void TestQEmf::check()
-: 13:{
9: 14: QVERIFY( true );
2: 15: QWinMetaFile wmf;
5: 16: QImage pic(1000, 800, QImage::Format_ARGB32_Premultiplied);
20: 17: QVERIFY( wmf.load( "1.emf" ) );
-: 18:
14: 19: wmf.paint( &pic );
4: 20:}
I'm not too worried - all I really care about is executed-or-not, but it does
make the output look unreliable.
I was a bit confused by the vc_annotate tool usage info - patch attached. This
also switches it to be generated from vc_annotate.in, so the patch is a bit
hard to read. Basically, it changes the usage to look like this:
usage: vc_annotate [options] vcov.out (source-files...)
Also, specifying source files doesn't appear to work. The relevant bit of
vc_annotate.in is shown below. include_dirs is just "", and the comment
appears to be related to the vcov.out file. I'm not sure what was intended
here.
for my $arg (@ARGV) {
<snipped>
# Argument handling -- annotation file checking and selection.
# Stick filenames into a hash for quick 'n easy lookup throughout.
} else {
if (not defined $input_file) {
# First non-option argument is the output file.
$input_file = $arg;
} else {
# Subsequent non-option arguments are source files.
my $readable = 0;
foreach my $include_dir (@include_dirs) {
if (-r $include_dir . $arg) {
$readable = 1;
}
}
$readable or die("File $arg not found in any of:
@include_dirs\n");
$user_ann_files{$arg} = 1;
}
}
}
From some initial usage, it would be most useful to be able to exclude a range
of files and directories. For example, always exclude
coregrind/m_trampoline.S, and provide an option so I can specify to not do
coverage on my test harness files and some include directories.
Thanks for making this available.
Brad
|
|
From: Tom H. <th...@cy...> - 2008-03-10 03:44:29
|
Nightly build on aston ( x86_64, Fedora Core 5 ) started at 2008-03-10 03:20:07 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo then mv -f ".deps/matinv_openmp-matinv_openmp.Tpo" ".deps/matinv_openmp-matinv_openmp.Po"; else rm -f ".deps/matinv_openmp-matinv_openmp.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o matinv_openmp matinv_openmp-matinv_openmp.o -lm matinv_openmp-matinv_openmp.o: In function `gj': matinv_openmp.c:(.text+0x5fe): undefined reference to `GOMP_parallel_start' matinv_openmp.c:(.text+0x60c): undefined reference to `GOMP_parallel_end' matinv_openmp-matinv_openmp.o: In function `gj.omp_fn.0': matinv_openmp.c:(.text+0x661): undefined reference to `omp_get_num_threads' matinv_openmp.c:(.text+0x668): undefined reference to `omp_get_thread_num' collect2: ld returned 1 exit status make[5]: *** [matinv_openmp] Error 1 make[5]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind' make: *** [check] Error 2 ================================================= == 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 == 417 tests, 9 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 10 03:37:05 2008 --- new.short Mon Mar 10 03:44:32 2008 *************** *** 6,20 **** ! Regression test results follow ! ! == 417 tests, 9 stderr failures, 1 stdout failure, 0 post failures == ! memcheck/tests/malloc_free_fill (stderr) ! memcheck/tests/pointer-trace (stderr) ! memcheck/tests/x86/scalar (stderr) ! none/tests/blockfault (stderr) ! none/tests/faultstatus (stderr) ! none/tests/mremap (stderr) ! none/tests/mremap2 (stdout) ! helgrind/tests/tc20_verifywrap (stderr) ! helgrind/tests/tc21_pthonce (stderr) ! helgrind/tests/tc22_exit_w_lock (stderr) ! --- 6,27 ---- ! Last 20 lines of verbose log follow echo ! then mv -f ".deps/matinv_openmp-matinv_openmp.Tpo" ".deps/matinv_openmp-matinv_openmp.Po"; else rm -f ".deps/matinv_openmp-matinv_openmp.Tpo"; exit 1; fi ! gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o matinv_openmp matinv_openmp-matinv_openmp.o -lm ! matinv_openmp-matinv_openmp.o: In function `gj': ! matinv_openmp.c:(.text+0x5fe): undefined reference to `GOMP_parallel_start' ! matinv_openmp.c:(.text+0x60c): undefined reference to `GOMP_parallel_end' ! matinv_openmp-matinv_openmp.o: In function `gj.omp_fn.0': ! matinv_openmp.c:(.text+0x661): undefined reference to `omp_get_num_threads' ! matinv_openmp.c:(.text+0x668): undefined reference to `omp_get_thread_num' ! collect2: ld returned 1 exit status ! make[5]: *** [matinv_openmp] Error 1 ! make[5]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' ! make[4]: *** [check-am] Error 2 ! make[4]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' ! make[3]: *** [check-recursive] Error 1 ! make[3]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' ! make[2]: *** [check-recursive] Error 1 ! make[2]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd' ! make[1]: *** [check-recursive] Error 1 ! make[1]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind' ! make: *** [check] Error 2 |
|
From: Tom H. <th...@cy...> - 2008-03-10 03:36:44
|
Nightly build on trojan ( x86_64, Fedora Core 6 ) started at 2008-03-10 03:25:05 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo then mv -f ".deps/matinv_openmp-matinv_openmp.Tpo" ".deps/matinv_openmp-matinv_openmp.Po"; else rm -f ".deps/matinv_openmp-matinv_openmp.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o matinv_openmp matinv_openmp-matinv_openmp.o -lm matinv_openmp-matinv_openmp.o: In function `gj': matinv_openmp.c:(.text+0x5fe): undefined reference to `GOMP_parallel_start' matinv_openmp.c:(.text+0x60c): undefined reference to `GOMP_parallel_end' matinv_openmp-matinv_openmp.o: In function `gj.omp_fn.0': matinv_openmp.c:(.text+0x661): undefined reference to `omp_get_num_threads' matinv_openmp.c:(.text+0x668): undefined reference to `omp_get_thread_num' collect2: ld returned 1 exit status make[5]: *** [matinv_openmp] Error 1 make[5]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind' make: *** [check] Error 2 ================================================= == 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 == 415 tests, 8 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 10 03:32:38 2008 --- new.short Mon Mar 10 03:36:29 2008 *************** *** 6,23 **** ! Regression test results follow ! ! == 415 tests, 8 stderr failures, 5 stdout failures, 0 post failures == ! memcheck/tests/pointer-trace (stderr) ! memcheck/tests/vcpu_fnfns (stdout) ! memcheck/tests/x86/bug133694 (stdout) ! memcheck/tests/x86/bug133694 (stderr) ! memcheck/tests/x86/scalar (stderr) ! none/tests/cmdline1 (stdout) ! none/tests/cmdline2 (stdout) ! none/tests/faultstatus (stderr) ! none/tests/mremap (stderr) ! none/tests/mremap2 (stdout) ! helgrind/tests/tc20_verifywrap (stderr) ! helgrind/tests/tc21_pthonce (stderr) ! helgrind/tests/tc22_exit_w_lock (stderr) ! --- 6,27 ---- ! Last 20 lines of verbose log follow echo ! then mv -f ".deps/matinv_openmp-matinv_openmp.Tpo" ".deps/matinv_openmp-matinv_openmp.Po"; else rm -f ".deps/matinv_openmp-matinv_openmp.Tpo"; exit 1; fi ! gcc -Winline -Wall -Wshadow -g -m64 -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o matinv_openmp matinv_openmp-matinv_openmp.o -lm ! matinv_openmp-matinv_openmp.o: In function `gj': ! matinv_openmp.c:(.text+0x5fe): undefined reference to `GOMP_parallel_start' ! matinv_openmp.c:(.text+0x60c): undefined reference to `GOMP_parallel_end' ! matinv_openmp-matinv_openmp.o: In function `gj.omp_fn.0': ! matinv_openmp.c:(.text+0x661): undefined reference to `omp_get_num_threads' ! matinv_openmp.c:(.text+0x668): undefined reference to `omp_get_thread_num' ! collect2: ld returned 1 exit status ! make[5]: *** [matinv_openmp] Error 1 ! make[5]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' ! make[4]: *** [check-am] Error 2 ! make[4]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' ! make[3]: *** [check-recursive] Error 1 ! make[3]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd/tests' ! make[2]: *** [check-recursive] Error 1 ! make[2]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind/exp-drd' ! make[1]: *** [check-recursive] Error 1 ! make[1]: Leaving directory `/tmp/vgtest/2008-03-10/valgrind' ! make: *** [check] Error 2 |
|
From: Tom H. <th...@cy...> - 2008-03-10 03:33:00
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-03-10 03:10:05 GMT 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 == 412 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 411 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_cvsimple (stdout) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 10 03:21:37 2008 --- new.short Mon Mar 10 03:33:03 2008 *************** *** 8,10 **** ! == 411 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 412 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) *************** *** 15,17 **** none/tests/mremap2 (stdout) - none/tests/pth_cvsimple (stdout) helgrind/tests/tc18_semabuse (stderr) --- 15,16 ---- |
|
From: Tom H. <th...@cy...> - 2008-03-10 03:17:43
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-03-10 03:00:03 GMT 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 == 418 tests, 32 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) exp-drd/tests/pth_create_chain (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 == 417 tests, 38 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) exp-drd/tests/hg03_inherit (stderr) exp-drd/tests/pth_create_chain (stderr) exp-drd/tests/pth_detached (stderr) exp-drd/tests/pth_detached2 (stderr) exp-drd/tests/tc20_verifywrap2 (stderr) exp-drd/tests/tc21_pthonce (stderr) exp-drd/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 10 03:09:09 2008 --- new.short Mon Mar 10 03:17:46 2008 *************** *** 8,10 **** ! == 417 tests, 38 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) --- 8,10 ---- ! == 418 tests, 32 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) *************** *** 43,51 **** helgrind/tests/tc23_bogus_condwait (stderr) - exp-drd/tests/hg03_inherit (stderr) exp-drd/tests/pth_create_chain (stderr) - exp-drd/tests/pth_detached (stderr) - exp-drd/tests/pth_detached2 (stderr) - exp-drd/tests/tc20_verifywrap2 (stderr) - exp-drd/tests/tc21_pthonce (stderr) - exp-drd/tests/tc22_exit_w_lock (stderr) --- 43,45 ---- |