You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(17) |
2
(14) |
3
(15) |
4
(30) |
5
(18) |
6
(12) |
7
(10) |
|
8
(11) |
9
(11) |
10
(14) |
11
(12) |
12
(12) |
13
(8) |
14
(5) |
|
15
(11) |
16
(19) |
17
(15) |
18
(15) |
19
(16) |
20
(9) |
21
(9) |
|
22
(12) |
23
(11) |
24
(10) |
25
(5) |
26
(11) |
27
(12) |
28
(20) |
|
29
(11) |
30
(21) |
|
|
|
|
|
|
From: Tom H. <th...@cy...> - 2008-06-28 02:38:59
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-06-28 03:10:04 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 == 433 tests, 9 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/linux-timerfd-syscall (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc17_sembar (stderr) 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 == 433 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/linux-timerfd-syscall (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (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) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Jun 28 03:24:49 2008 --- new.short Sat Jun 28 03:39:06 2008 *************** *** 8,10 **** ! == 433 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 433 tests, 9 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) *************** *** 16,17 **** --- 16,18 ---- none/tests/mremap2 (stdout) + helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) |
|
From: Tom H. <th...@cy...> - 2008-06-28 02:33:38
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-06-28 03:00:13 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 == 438 tests, 31 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) |
|
From: <sv...@va...> - 2008-06-27 19:25:28
|
Author: bart
Date: 2008-06-27 20:25:35 +0100 (Fri, 27 Jun 2008)
New Revision: 8290
Log:
Fixed typo.
Modified:
trunk/helgrind/docs/hg-manual.xml
Modified: trunk/helgrind/docs/hg-manual.xml
===================================================================
--- trunk/helgrind/docs/hg-manual.xml 2008-06-27 15:00:07 UTC (rev 8289)
+++ trunk/helgrind/docs/hg-manual.xml 2008-06-27 19:25:35 UTC (rev 8290)
@@ -1020,7 +1020,7 @@
LinuxThreads implementation is not supported.</para>
<para>Unsupported targets may work to varying degrees. In
- particular ppc32-linux and ppc64-linux running NTPL should work,
+ particular ppc32-linux and ppc64-linux running NPTL should work,
but you will get false race errors because Helgrind does not know
how to properly handle atomic instruction sequences created using
the lwarx/stwcx instructions.</para>
|
|
From: Andre H. <har...@in...> - 2008-06-27 18:51:05
|
Dear members of the Valgrind project, we kindly ask for your participation in our survey on security assurance in free/open source software. Security assurances are confidence building activities through structured design processes, documentation, and testing. By participating in our survey you contribute to ongoing research with the aim to make free/open source software more secure. It will not take more than 10 minutes of your valuable time for our 21 questions. Our survey is online for the next two weeks until July 1 at: http://survey.mi.fu-berlin.de/public/survey.php?name=fosssecurity The survey is anonymous. Please find the results of the survey on the project page during July: https://www.inf.fu-berlin.de/w/SE/FOSSSecuritySurvey For further information about Open Source research at the Research Group Software Engineering at Freie Universitaet Berlin, please visit: https://www.inf.fu-berlin.de/w/SE/FOSSHome Thank you in anticipation, Sascha Rasmussen, Alexander Kunze, and Andre Haralevi In case you participate in more than one FOSS project, please fill out the questionnaire for the one where security is most important, or fill out one questionnaire per project. Thank you! |
|
From: <sv...@va...> - 2008-06-27 15:00:00
|
Author: bart
Date: 2008-06-27 16:00:07 +0100 (Fri, 27 Jun 2008)
New Revision: 8289
Log:
Moved --trace-segment from regular to debugging options.
Modified:
trunk/exp-drd/drd_main.c
Modified: trunk/exp-drd/drd_main.c
===================================================================
--- trunk/exp-drd/drd_main.c 2008-06-27 14:56:48 UTC (rev 8288)
+++ trunk/exp-drd/drd_main.c 2008-06-27 15:00:07 UTC (rev 8289)
@@ -196,7 +196,6 @@
" --trace-fork-join=yes|no Trace all thread fork/join activity [no].\n"
" --trace-mutex=yes|no Trace all mutex activity [no].\n"
" --trace-rwlock=yes|no Trace all reader-writer lock activity[no].\n"
-" --trace-segment=yes|no Trace segment actions [no].\n"
" --trace-semaphore=yes|no Trace all semaphore activity [no].\n"
);
VG_(replacement_malloc_print_usage)();
@@ -209,7 +208,8 @@
" --trace-clientobj=yes|no Trace all client object activity [no].\n"
" --trace-csw=yes|no Trace all scheduler context switches [no].\n"
" --trace-danger-set=yes|no Trace all danger set updates [no].\n"
-" --trace-suppr=yes|no Trace all address suppression actions [no].\n"
+" --trace-segment=yes|no Trace segment actions [no].\n"
+" --trace-suppr=yes|no Trace all address suppression actions [no].\n"
);
VG_(replacement_malloc_print_debug_usage)();
}
|
|
From: <sv...@va...> - 2008-06-27 14:56:46
|
Author: bart Date: 2008-06-27 15:56:48 +0100 (Fri, 27 Jun 2008) New Revision: 8288 Log: Added a reference to a paper about data race detection. Modified: trunk/exp-drd/docs/README.txt Modified: trunk/exp-drd/docs/README.txt =================================================================== --- trunk/exp-drd/docs/README.txt 2008-06-27 14:56:06 UTC (rev 8287) +++ trunk/exp-drd/docs/README.txt 2008-06-27 14:56:48 UTC (rev 8288) @@ -482,6 +482,16 @@ Parallel Computing archive, Volume 28, Issue 9, pp 1221-1238, September 2002. http://portal.acm.org/citation.cfm?id=638124 + +[Pozniansky 2003] + Eli Pozniansky, Assaf Schuster. + Efficient on-the-fly data race detection in multithreaded C++ programs. + Proceedings of the ACM SIGPLAN symposium on principles and practice + of parallel programming (PPoPP 2003) and workshop on partial + evaluation and semantics-based program manipulation (PEPM 2003), + Volume 38, Issue 10, pp 179-190 (October 2003). + http://www.cs.technion.ac.il/~assaf/publications/MultiRace.pdf + http://portal.acm.org/citation.cfm?id=966049.781529 [Ronsse 2004] Michiel Ronsse, Jonas Maebe, Koen De Bosschere. |
|
From: <sv...@va...> - 2008-06-27 14:56:03
|
Author: bart
Date: 2008-06-27 15:56:06 +0100 (Fri, 27 Jun 2008)
New Revision: 8287
Log:
Continued working on the DRD documentation.
Modified:
trunk/exp-drd/docs/drd-manual.xml
Modified: trunk/exp-drd/docs/drd-manual.xml
===================================================================
--- trunk/exp-drd/docs/drd-manual.xml 2008-06-27 07:50:11 UTC (rev 8286)
+++ trunk/exp-drd/docs/drd-manual.xml 2008-06-27 14:56:06 UTC (rev 8287)
@@ -11,221 +11,491 @@
<computeroutput>--tool=exp-drd</computeroutput>
on the Valgrind command line.</para>
+
<sect1 id="drd-manual.overview" xreflabel="Overview">
-<title>Introduction</title>
+<title>Background</title>
<para>
DRD is a Valgrind tool for detecting errors in multithreaded C and C++
shared-memory programs. The tool works for any program that uses the
-POSIX threading primitives or a threading library built on top of the
-POSIX threading primitives. POSIX threads, also known as Pthreads, is
-the most widely available threading library on Unix systems.
+POSIX threading primitives or that uses threading concepts built on
+top of the POSIX threading primitives.
</para>
+<sect2 id="drd-manual.mt-progr-models" xreflabel="MT-progr-models">
+<title>Multithreaded Programming Paradigms</title>
+
<para>
-Multithreaded programming is error prone. Depending on how multithreading is
-expressed in a program, one or more of the following problems can pop up in a
-multithreaded program:
+For many applications multithreading is a necessity. There are two
+reasons why the use of threads may be required:
<itemizedlist>
<listitem>
<para>
- A data race, i.e. one or more threads access the same memory
- location without sufficient locking.
+ To model concurrent activities. Managing the state of one
+ activity per thread can be a great simplification compared to
+ multiplexing the states of multiple activities in a single
+ thread. This is why most server and embedded software is
+ multithreaded.
</para>
</listitem>
<listitem>
<para>
- Lock contention: one thread blocks the progress of another thread
- by holding a lock too long.
+ To let computations run on multiple CPU cores
+ simultaneously. This is why many High Performance Computing
+ (HPC) applications are multithreaded.
</para>
</listitem>
+</itemizedlist>
+</para>
+
+<para>
+Multithreaded programs can use one or more of the following
+paradigms. Which paradigm is appropriate a.o. depends on the
+application type -- modeling concurrent activities versus HPC.
+<itemizedlist>
<listitem>
<para>
- Deadlock: two or more threads wait for each other indefinitely.
+ Locking. Data that is shared between threads may only be
+ accessed after a lock is obtained on the mutex associated with
+ the shared data item. A.o. the POSIX threads library, the Qt
+ library and the Boost.Thread library support this paradigm
+ directly.
</para>
</listitem>
<listitem>
<para>
- False sharing: threads on two different processors access different
- variables in the same cache line frequently, causing frequent exchange
- of cache lines and slowing down both threads.
+ Message passing. No data is shared between threads, but threads
+ exchange data by passing messages to each other. Well known
+ implementations of the message passing paradigm are MPI and
+ CORBA.
</para>
</listitem>
<listitem>
<para>
- Improper use of the POSIX threads API.
+ Software Transactional Memory (STM). Data is shared between
+ threads, and shared data is updated via transactions. After each
+ transaction it is verified whether there were conflicting
+ transactions. If there were conflicts, the transaction is
+ aborted, otherwise it is committed. This is a so-called
+ optimistic approach. There is a prototype of the Intel C
+ Compiler (<computeroutput>icc</computeroutput>) available that
+ supports STM. Research is ongoing about the addition of STM
+ support to <computeroutput>gcc</computeroutput>.
</para>
</listitem>
+ <listitem>
+ <para>
+ Automatic parallelization. A compiler converts a sequential
+ program into a multithreaded program. The original program may
+ or may not contain parallelization hints. As an example,
+ <computeroutput>gcc</computeroutput> supports OpenMP from
+ version 4.3.0 on. OpenMP is a set of compiler directives which
+ tell a compiler how to parallelize a C, C++ or Fortran program.
+ </para>
+ </listitem>
</itemizedlist>
</para>
<para>
-Although the likelihood of some classes of multithreaded programming
-errors can be reduced by a disciplined programming style, a tool for
-automatic detection of runtime threading errors is always a great help
-when developing multithreaded software.
+DRD supports any combination of multithreaded programming paradigms as
+long as the implementation of these paradigms is based on the POSIX
+threads primitives. DRD however does not support programs that use
+e.g. Linux' futexes directly. Attempts to analyze such programs with
+DRD will result in false positives.
</para>
-<para>
-The remainder of this manual is organized as follows. In the next
-section it is discussed which <link
-linkend="drd-manual.mt-progr-models"> multithreading programming
-paradigms</link> exist.
-</para>
+</sect2>
-<para>Then there is a
-<link linkend="drd-manual.options">summary of command-line
-options</link>.
-</para>
+<sect2 id="drd-manual.pthreads-model" xreflabel="Pthreads-model">
+<title>POSIX Threads Programming Model</title>
+
<para>
-DRD can detect three classes of errors, which are discussed in detail:
+POSIX threads, also known as Pthreads, is the most widely available
+threading library on Unix systems.
</para>
-<orderedlist>
- <listitem>
- <para><link linkend="drd-manual.data-races">Data races</link>.</para>
- </listitem>
- <listitem>
- <para><link linkend="drd-manual.lock-contention">Lock contention</link>.
- </para>
- </listitem>
- <listitem>
- <para><link linkend="drd-manual.api-checks">
- Misuse of the POSIX threads API</link>.</para>
- </listitem>
-</orderedlist>
-
-<para>Finally, there is a section about the current
-<link linkend="drd-manual.limitations">limitations</link>
-of DRD.
-</para>
-
-</sect1>
-
-
-<sect1 id="drd-manual.mt-progr-models" xreflabel="MT-progr-models">
-<title>Multithreaded Programming Paradigms</title>
-
<para>
-For many applications multithreading is a necessity. There are two
-reasons why the use of threads may be required:
+The POSIX threads programming model is based on the following abstractions:
<itemizedlist>
<listitem>
<para>
- To model concurrent activities. Managing the state of one activity
- per thread is a simpler programming model than multiplexing the states
- of multiple activities in a single thread. This is why most server and
- embedded software is multithreaded.
+ A shared address space. All threads running within the same
+ process share the same address space. All data, whether shared or
+ not, is identified by its address.
</para>
</listitem>
<listitem>
<para>
- To let computations run on multiple CPU cores simultaneously. This is
- why many High Performance Computing (HPC) applications are multithreaded.
+ Regular load and store operations, which allow to read values
+ from or to write values to the memory shared by all threads
+ running in the same process.
</para>
</listitem>
+ <listitem>
+ <para>
+ Atomic store and load-modify-store operations. While these
+ are not mentioned in the POSIX threads standard, most
+ microprocessors support atomic memory operations. And some
+ compilers provide direct support for atomic memory operations
+ through built-in functions like
+ e.g. <computeroutput>__sync_fetch_and_add()</computeroutput>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Threads. Each thread represents a concurrent activity.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Synchronization objects and operations on these synchronization
+ objects. The following types of synchronization objects are
+ defined in the POSIX threads standard: mutexes, condition
+ variables, semaphores, reader-writer locks, barriers and
+ spinlocks.
+ </para>
+ </listitem>
</itemizedlist>
</para>
<para>
-Multithreaded programs can be developed by using one or more of the
-following paradigms. Which paradigm is appropriate also depends on the
-application type -- modeling concurrent activities versus HPC.
+Which source code statements generate which memory accesses depends on
+the memory model of the programming language being used. There is not
+yet a definitive memory model for the C and C++ languagues. For a
+draft memory model, see also document <ulink
+url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2338.html">
+WG21/N2338</ulink>.
+</para>
+
+<para>
+For more information about POSIX threads, see also the Single UNIX
+Specification version 3, also known as
+<ulink url="http://www.unix.org/version3/ieee_std.html">
+IEEE Std 1003.1</ulink>.
+</para>
+
+</sect2>
+
+
+<sect2 id="drd-manual.mt-problems" xreflabel="MT-Problems">
+<title>Multithreaded Programming Problems</title>
+
+<para>
+Depending on how multithreading is expressed in a program, one or more
+of the following problems can be triggered by a multithreaded program:
<itemizedlist>
<listitem>
<para>
- Locking: data that is shared between threads may only be accessed
- after a lock is obtained on the mutex(es) associated with the
- shared data item. The POSIX threads library, the Qt library
- and the Boost.Thread library support this paradigm directly.
+ Data races. One or more threads access the same memory
+ location without sufficient locking.
</para>
</listitem>
<listitem>
<para>
- Message passing: any data that has to be passed from one thread to
- another is sent via a message to that other thread. No data is explicitly
- shared. Well known implementations of the message passing paradigm are
- MPI and CORBA.
+ Lock contention. One thread blocks the progress of one or more other
+ threads by holding a lock too long.
</para>
</listitem>
<listitem>
<para>
- Software Transactional Memory (STM). Just like the locking
- paradigm, with STM data is shared between threads. While the
- locking paradigm requires that all associated mutexes are locked
- before the shared data is accessed, with the STM paradigm after
- each transaction it is verified whether there were conflicting
- transactions. If there were conflicts, the transaction is aborted,
- otherwise it is committed. This is a so-called optimistic
- approach. Not all C, C++ and Fortran compilers already support STM.
+ Improper use of the POSIX threads API. The most popular POSIX
+ threads implementation, NPTL, is optimized for speed. The NPTL
+ will not complain on certain errors, e.g. when a mutex is locked
+ in one thread and unlocked in another thread.
</para>
</listitem>
<listitem>
<para>
- Automatic parallelization: a compiler converts a sequential
- program into a multithreaded program. The original program can
- contain parallelization hints. As an example, gcc version 4.3.0
- and later supports OpenMP, a set of standardized compiler
- directives which tell a compiler how to parallelize a C, C++ or
- Fortran program.
+ Deadlock. A deadlock occurs when two or more threads wait for
+ each other indefinitely.
</para>
</listitem>
+ <listitem>
+ <para>
+ False sharing. If threads that run on different processor cores
+ access different variables located in the same cache line
+ frequently, this will slow down the involved threads a lot due
+ to frequent exchange of cache lines.
+ </para>
+ </listitem>
</itemizedlist>
</para>
<para>
-Next to the above paradigms, most CPU instruction sets support atomic
-memory accesses. Such operations are the most efficient way to update
-a single value on a system with multiple CPU cores.
+Although the likelihood of the occurrence of data races can be reduced
+by a disciplined programming style, a tool for automatic detection of
+data races is a necessity when developing multithreaded software. DRD
+can detect these, as well as lock contention and improper use of the
+POSIX threads API.
</para>
+</sect2>
+
+
+<sect2 id="drd-manual.drd-versus-helgrind" xreflabel="DRD-versus-Helgrind">
+<title>Data Race Detection by DRD versus Helgrind</title>
+
<para>
-DRD supports any combination of multithreaded programming paradigms
-and atomic memory accesses, as long as the libraries that implement
-the paradigms are based on POSIX threads. Direct use of e.g. Linux'
-futexes is not recognized by DRD and will result in false positives.
+Synchronization operations impose an order on interthread memory
+accesses. This order is also known as the happens-before relationship.
</para>
+<para>
+A multithreaded program is data-race free if all interthread memory
+accesses are ordered by synchronization operations.
+</para>
+
+<para>
+A well known way to ensure that a multithreaded program is data-race
+free is to ensure that a locking discipline is followed. It is e.g.
+possible to associate a mutex with each shared data item, and to hold
+a lock on the associated mutex while the shared data is accessed.
+</para>
+
+<para>
+All programs that follow a locking discipline are data-race free, but
+not all data-race free programs follow a locking discipline. There
+exist multithreaded programs where access to shared data is arbitrated
+via condition variables, semaphores or barriers. As an example, a
+certain class of HPC applications consists of a sequence of
+computation steps separated in time by barriers, and where these
+barriers are the only means of synchronization.
+</para>
+
+<para>
+There exist two different algorithms for verifying the correctness of
+multithreaded programs at runtime. The so-called Eraser algorithm
+verifies whether all shared memory accesses follow a consistent
+locking strategy. And the happens-before data race detectors verify
+directly whether all interthread memory accesses are ordered by
+synchronization operations. While the happens-before data race
+detection algorithm is more complex to implement, and while it is more
+sensitive to OS scheduling, it is a general approach that works for
+all classes of multithreaded programs. Furthermore, the happens-before
+data race detection algorithm does not report any false positives.
+</para>
+
+<para>
+DRD is based on the happens-before algorithm, while Helgrind uses a
+variant of the Eraser algorithm.
+</para>
+
+</sect2>
+
+
</sect1>
-<sect1 id="drd-manual.options" xreflabel="DRD Options">
+<sect1 id="drd-manual.using-drd" xreflabel="Using DRD">
+<title>Using DRD</title>
+
+<sect2 id="drd-manual.options" xreflabel="DRD Options">
<title>Command Line Options</title>
-<para>The following end-user options are available:</para>
+<para>The following command-line options are available for controlling the
+behavior of the DRD tool itself:</para>
<!-- start of xi:include in the manpage -->
<variablelist id="drd.opts.list">
+ <varlistentry>
+ <term>
+ <option><![CDATA[--check-stack-var=<yes|no> [default: no]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Controls whether <constant>DRD</constant> reports data races
+ for stack variables. This is disabled by default in order to
+ accelerate data race detection. Most programs do not share
+ stack variables over threads.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--exclusive-threshold=<n> [default: off]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Print an error message if any mutex or writer lock is held
+ longer than the specified time (in milliseconds). This option
+ is intended to allow detection of lock contention.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--segment-merging=<yes|no> [default: yes]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Controls segment merging. Segment merging is an algorithm to
+ limit memory usage of the data race detection
+ algorithm. Disabling segment merging may improve the accuracy
+ of the so-called 'other segments' displayed in race reports
+ but can also trigger an out of memory error.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--shared-threshold=<n> [default: off]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Print an error message if a reader lock is held longer than
+ the specified time (in milliseconds). This option is intended
+ to allow detection of lock contention.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--show-confl-seg=<yes|no> [default: yes]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Show conflicting segments in race reports. Since this
+ information can help to find the cause of a data race, this
+ option is enabled by default. Disabling this option makes the
+ output of DRD more compact.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--show-stack-usage=<yes|no> [default: no]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Print stack usage at thread exit time. When there is a large
+ number of threads created in a program it becomes important to
+ limit the amount of virtual memory allocated for thread
+ stacks. This option makes it possible to observe the maximum
+ number of bytes that has been used by the client program for
+ thread stacks. Note: the DRD tool allocates some temporary
+ data on the client thread stack. The space needed for this
+ temporary data is not reported via this option.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--var-info=<yes|no> [default: no]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Display the names of global, static and stack variables when a
+ data race is reported. While this information can be very
+ helpful, by default it is not loaded into memory since for big
+ programs reading in all debug information at once may cause an
+ out of memory error.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
<!-- end of xi:include in the manpage -->
<!-- start of xi:include in the manpage -->
-<para>In addition, the following debugging options are available for
-DRD:</para>
+<para>
+The following options are available for monitoring the behavior of the
+process being analyzed with DRD:
+</para>
+
<variablelist id="drd.debugopts.list">
+ <varlistentry>
+ <term>
+ <option><![CDATA[--trace-addr=<address> [default: none]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Trace all load and store activity for the specified
+ address. This option may be specified more than once.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--trace-barrier=<yes|no> [default: no]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Trace all barrier activity.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--trace-cond=<yes|no> [default: no]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Trace all condition variable activity.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--trace-fork-join=<yes|no> [default: no]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Trace all thread creation and all thread termination events.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--trace-mutex=<yes|no> [default: no]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Trace all mutex activity.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--trace-rwlock=<yes|no> [default: no]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Trace all reader-writer lock activity.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option><![CDATA[--trace-semaphore=<yes|no> [default: no]]]></option>
+ </term>
+ <listitem>
+ <para>
+ Trace all semaphore activity.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
<!-- end of xi:include in the manpage -->
-</sect1>
+</sect2>
-<sect1 id="drd-manual.data-races" xreflabel="Data Races">
+<sect2 id="drd-manual.data-races" xreflabel="Data Races">
<title>Data Races</title>
-</sect1>
+</sect2>
-<sect1 id="drd-manual.lock-contention" xreflabel="Lock Contention">
+<sect2 id="drd-manual.lock-contention" xreflabel="Lock Contention">
<title>Lock Contention</title>
-</sect1>
+</sect2>
-<sect1 id="drd-manual.api-checks" xreflabel="API Checks">
+<sect2 id="drd-manual.api-checks" xreflabel="API Checks">
<title>Misuse of the POSIX threads API</title>
-</sect1>
+</sect2>
-<sect1 id="drd-manual.clientreqs" xreflabel="Client requests">
+<sect2 id="drd-manual.clientreqs" xreflabel="Client requests">
<title>Client Requests</title>
<para>
@@ -233,10 +503,10 @@
from a client program to the DRD tool.
</para>
-</sect1>
+</sect2>
-<sect1 id="drd-manual.openmp" xreflabel="OpenMP">
+<sect2 id="drd-manual.openmp" xreflabel="OpenMP">
<title>Debugging OpenMP Programs With DRD</title>
<para>
@@ -244,6 +514,14 @@
from a client program to the DRD tool.
</para>
+<para>
+For more information about OpenMP, see also
+<ulink url="http://openmp.org/">openmp.org</ulink>.
+</para>
+
+</sect2>
+
+
</sect1>
@@ -253,30 +531,74 @@
<para>DRD currently has the following limitations:</para>
<itemizedlist>
- <listitem><para>DRD has only been tested on the Linux operating
- system, and not on any of the other operating systems supported by
- Valgrind.</para>
+ <listitem>
+ <para>
+ DRD has only been tested on the Linux operating system, and not
+ on any of the other operating systems supported by
+ Valgrind.
+ </para>
</listitem>
- <listitem><para>Of the two POSIX threads implementations for Linux,
- only the NPTL (Native POSIX Thread Library) is supported. The older
- LinuxThreads library is not supported.</para>
+ <listitem>
+ <para>
+ Of the two POSIX threads implementations for Linux, only the
+ NPTL (Native POSIX Thread Library) is supported. The older
+ LinuxThreads library is not supported.
+ </para>
</listitem>
- <listitem><para>When running DRD on a PowerPC CPU, DRD will report
- false positives on atomic operations. See also <ulink
- url="http://bugs.kde.org/show_bug.cgi?id=162354">KDE bug 162354</ulink>.
- </para></listitem>
- <listitem><para>DRD, just like memcheck, will refuse to
- start on Linux distributions where all symbol information has been
- removed from ld.so. This is e.g. the case for openSUSE 10.3 -- see
- also <ulink url="http://bugzilla.novell.com/show_bug.cgi?id=396197">
- Novell bug 396197</ulink>.
- </para></listitem>
- <listitem><para>If you compile the DRD source code yourself, you need
- gcc 3.0 or later. gcc 2.95 is not supported.</para>
+ <listitem>
+ <para>
+ When running DRD on a PowerPC CPU, DRD will report false
+ positives on atomic operations. See also Valgrind bug <ulink
+ url="http://bugs.kde.org/show_bug.cgi?id=162354">
+ 162354</ulink>.
+ </para>
</listitem>
+ <listitem>
+ <para>
+ DRD, just like memcheck, will refuse to start on Linux
+ distributions where all symbol information has been removed from
+ ld.so. This is a.o. the case for the PPC editions of openSUSE
+ and Gentoo. You will have to install the glibc debuginfo package
+ on these platforms before you can use DRD. See also openSUSE bug
+ <ulink url="http://bugzilla.novell.com/show_bug.cgi?id=396197">
+ 396197</ulink> and Gentoo bug <ulink
+ url="http://bugs.gentoo.org/214065">214065</ulink>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ When DRD prints a report about a data race detected on a stack
+ variable in a parallel section of an OpenMP program, the report
+ will contain no information about the context of the data race
+ location (<computeroutput>Allocation context:
+ unknown</computeroutput>). It's not yet clear whether this
+ behavior is caused by Valgrind or by gcc.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ If you compile the DRD source code yourself, you need gcc 3.0 or
+ later. gcc 2.95 is not supported.
+ </para>
+ </listitem>
</itemizedlist>
</sect1>
+
+<sect1 id="drd-manual.feedback" xreflabel="Feedback">
+<title>Feedback</title>
+
+<para>
+If you have any comments, suggestions, feedback or bug reports about
+DRD, feel free to either post a message on the Valgrind users mailing
+list or to file a bug report. See also <ulink
+url="&vg-url;">&vg-url;</ulink> for more information about the
+Valgrind mailing lists and how to file a bug report.
+</para>
+
+</sect1>
+
+
</chapter>
|
|
From: <sv...@va...> - 2008-06-27 07:50:05
|
Author: bart Date: 2008-06-27 08:50:11 +0100 (Fri, 27 Jun 2008) New Revision: 8286 Log: Fixed filter. Modified: trunk/memcheck/tests/filter_malloc_free_fill Modified: trunk/memcheck/tests/filter_malloc_free_fill =================================================================== --- trunk/memcheck/tests/filter_malloc_free_fill 2008-06-27 07:33:18 UTC (rev 8285) +++ trunk/memcheck/tests/filter_malloc_free_fill 2008-06-27 07:50:11 UTC (rev 8286) @@ -2,4 +2,4 @@ ./filter_stderr | sed -e 's|^Use of uninitialised value of size [0-9]*$|Use of uninitialised value of size .|g' \ - -e 's|^ at 0x\.\.\.\.\.\.\.\.: _itoa_word (in /\.\.\.libc\.\.\.)$| at 0x........: (within /...libc...)|g' + -e 's|^ *at 0x\.*: _itoa_word (in /\.\.\.libc\.\.\.)$| at 0x........: (within /...libc...)|g' |
|
From: <sv...@va...> - 2008-06-27 07:33:24
|
Author: bart Date: 2008-06-27 08:33:18 +0100 (Fri, 27 Jun 2008) New Revision: 8285 Log: Added extra filtering for the stderr output of malloc_free_fill such that the output of this test becomes independent of the Linux distribution the test is run on. Should fix #162819. Added: trunk/memcheck/tests/filter_malloc_free_fill trunk/memcheck/tests/malloc_free_fill.stderr.exp Removed: trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-amd64 trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-x86 trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc27-amd64 Modified: trunk/memcheck/tests/Makefile.am trunk/memcheck/tests/malloc_free_fill.vgtest Modified: trunk/memcheck/tests/Makefile.am =================================================================== --- trunk/memcheck/tests/Makefile.am 2008-06-26 08:58:25 UTC (rev 8284) +++ trunk/memcheck/tests/Makefile.am 2008-06-27 07:33:18 UTC (rev 8285) @@ -75,8 +75,7 @@ lsframe2.vgtest lsframe2.stdout.exp lsframe2.stderr.exp \ mallinfo.stderr.exp mallinfo.vgtest \ malloc_free_fill.vgtest malloc_free_fill.stdout.exp \ - malloc_free_fill.stderr.exp-glibc25-amd64 \ - malloc_free_fill.stderr.exp-glibc25-x86 \ + malloc_free_fill.stderr.exp \ malloc_usable.stderr.exp malloc_usable.vgtest \ malloc1.stderr.exp malloc1.vgtest \ malloc2.stderr.exp malloc2.vgtest \ Added: trunk/memcheck/tests/filter_malloc_free_fill =================================================================== --- trunk/memcheck/tests/filter_malloc_free_fill (rev 0) +++ trunk/memcheck/tests/filter_malloc_free_fill 2008-06-27 07:33:18 UTC (rev 8285) @@ -0,0 +1,5 @@ +#! /bin/sh + +./filter_stderr | +sed -e 's|^Use of uninitialised value of size [0-9]*$|Use of uninitialised value of size .|g' \ + -e 's|^ at 0x\.\.\.\.\.\.\.\.: _itoa_word (in /\.\.\.libc\.\.\.)$| at 0x........: (within /...libc...)|g' Property changes on: trunk/memcheck/tests/filter_malloc_free_fill ___________________________________________________________________ Name: svn:executable + * Copied: trunk/memcheck/tests/malloc_free_fill.stderr.exp (from rev 8284, trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc27-amd64) =================================================================== --- trunk/memcheck/tests/malloc_free_fill.stderr.exp (rev 0) +++ trunk/memcheck/tests/malloc_free_fill.stderr.exp 2008-06-27 07:33:18 UTC (rev 8285) @@ -0,0 +1,58 @@ + +test simple malloc/free: +Use of uninitialised value of size . + at 0x........: (within /...libc...) + by 0x........: ... + by 0x........: ... + by 0x........: ... + by 0x........: ... + by 0x........: main (malloc_free_fill.c:17) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: (within /...libc...) + by 0x........: ... + by 0x........: ... + by 0x........: ... + by 0x........: ... + by 0x........: main (malloc_free_fill.c:17) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: vfprintf (in /...libc...) + by 0x........: ... + by 0x........: ... + by 0x........: ... + by 0x........: main (malloc_free_fill.c:17) +(should be malloc-filled) a[4] = 55555555 + +Invalid read of size 4 + at 0x........: main (malloc_free_fill.c:20) + Address 0x........ is 20 bytes inside a block of size 40 free'd + at 0x........: free (vg_replace_malloc.c:...) + by 0x........: main (malloc_free_fill.c:19) +(should be free-filled) a[5] = 77777777 +test realloc-larger: +(should be malloc-filled) r[25] = 55555555 + +Invalid read of size 4 + at 0x........: main (malloc_free_fill.c:33) + Address 0x........ is 104 bytes inside a block of size 120 free'd + at 0x........: realloc (vg_replace_malloc.c:...) + by 0x........: main (malloc_free_fill.c:31) +(should be free-filled) oldr[26] = 77777777 +(should be malloc-filled) r[35] = 55555555 +test realloc-smaller: +(should be malloc-filled) r[25] = 55555555 + +Invalid read of size 4 + at 0x........: main (malloc_free_fill.c:49) + Address 0x........ is not stack'd, malloc'd or (recently) free'd +(should be free-filled) oldr[26] = 77777777 +test calloc: +(should be zero) a[42] = 0 + +ERROR SUMMARY: 67 errors from 6 contexts (suppressed: 0 from 0) +malloc/free: in use at exit: 0 bytes in 0 blocks. +malloc/free: 6 allocs, 6 frees, 920 bytes allocated. +For a detailed leak analysis, rerun with: --leak-check=yes +For counts of detected errors, rerun with: -v +Use --track-origins=yes to see where uninitialised values come from Property changes on: trunk/memcheck/tests/malloc_free_fill.stderr.exp ___________________________________________________________________ Name: svn:mergeinfo + Deleted: trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-amd64 =================================================================== --- trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-amd64 2008-06-26 08:58:25 UTC (rev 8284) +++ trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-amd64 2008-06-27 07:33:18 UTC (rev 8285) @@ -1,58 +0,0 @@ - -test simple malloc/free: -Use of uninitialised value of size 8 - at 0x........: _itoa_word (in /...libc...) - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: main (malloc_free_fill.c:17) - -Conditional jump or move depends on uninitialised value(s) - at 0x........: _itoa_word (in /...libc...) - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: main (malloc_free_fill.c:17) - -Conditional jump or move depends on uninitialised value(s) - at 0x........: vfprintf (in /...libc...) - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: main (malloc_free_fill.c:17) -(should be malloc-filled) a[4] = 55555555 - -Invalid read of size 4 - at 0x........: main (malloc_free_fill.c:20) - Address 0x........ is 20 bytes inside a block of size 40 free'd - at 0x........: free (vg_replace_malloc.c:...) - by 0x........: main (malloc_free_fill.c:19) -(should be free-filled) a[5] = 77777777 -test realloc-larger: -(should be malloc-filled) r[25] = 55555555 - -Invalid read of size 4 - at 0x........: main (malloc_free_fill.c:33) - Address 0x........ is 104 bytes inside a block of size 120 free'd - at 0x........: realloc (vg_replace_malloc.c:...) - by 0x........: main (malloc_free_fill.c:31) -(should be free-filled) oldr[26] = 77777777 -(should be malloc-filled) r[35] = 55555555 -test realloc-smaller: -(should be malloc-filled) r[25] = 55555555 - -Invalid read of size 4 - at 0x........: main (malloc_free_fill.c:49) - Address 0x........ is not stack'd, malloc'd or (recently) free'd -(should be free-filled) oldr[26] = 77777777 -test calloc: -(should be zero) a[42] = 0 - -ERROR SUMMARY: 67 errors from 6 contexts (suppressed: 0 from 0) -malloc/free: in use at exit: 0 bytes in 0 blocks. -malloc/free: 6 allocs, 6 frees, 920 bytes allocated. -For a detailed leak analysis, rerun with: --leak-check=yes -For counts of detected errors, rerun with: -v -Use --track-origins=yes to see where uninitialised values come from Deleted: trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-x86 =================================================================== --- trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-x86 2008-06-26 08:58:25 UTC (rev 8284) +++ trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-x86 2008-06-27 07:33:18 UTC (rev 8285) @@ -1,58 +0,0 @@ - -test simple malloc/free: -Use of uninitialised value of size 4 - at 0x........: _itoa_word (in /...libc...) - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: main (malloc_free_fill.c:17) - -Conditional jump or move depends on uninitialised value(s) - at 0x........: _itoa_word (in /...libc...) - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: main (malloc_free_fill.c:17) - -Conditional jump or move depends on uninitialised value(s) - at 0x........: vfprintf (in /...libc...) - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: main (malloc_free_fill.c:17) -(should be malloc-filled) a[4] = 55555555 - -Invalid read of size 4 - at 0x........: main (malloc_free_fill.c:20) - Address 0x........ is 20 bytes inside a block of size 40 free'd - at 0x........: free (vg_replace_malloc.c:...) - by 0x........: main (malloc_free_fill.c:19) -(should be free-filled) a[5] = 77777777 -test realloc-larger: -(should be malloc-filled) r[25] = 55555555 - -Invalid read of size 4 - at 0x........: main (malloc_free_fill.c:33) - Address 0x........ is 104 bytes inside a block of size 120 free'd - at 0x........: realloc (vg_replace_malloc.c:...) - by 0x........: main (malloc_free_fill.c:31) -(should be free-filled) oldr[26] = 77777777 -(should be malloc-filled) r[35] = 55555555 -test realloc-smaller: -(should be malloc-filled) r[25] = 55555555 - -Invalid read of size 4 - at 0x........: main (malloc_free_fill.c:49) - Address 0x........ is not stack'd, malloc'd or (recently) free'd -(should be free-filled) oldr[26] = 77777777 -test calloc: -(should be zero) a[42] = 0 - -ERROR SUMMARY: 67 errors from 6 contexts (suppressed: 0 from 0) -malloc/free: in use at exit: 0 bytes in 0 blocks. -malloc/free: 6 allocs, 6 frees, 920 bytes allocated. -For a detailed leak analysis, rerun with: --leak-check=yes -For counts of detected errors, rerun with: -v -Use --track-origins=yes to see where uninitialised values come from Deleted: trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc27-amd64 =================================================================== --- trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc27-amd64 2008-06-26 08:58:25 UTC (rev 8284) +++ trunk/memcheck/tests/malloc_free_fill.stderr.exp-glibc27-amd64 2008-06-27 07:33:18 UTC (rev 8285) @@ -1,58 +0,0 @@ - -test simple malloc/free: -Use of uninitialised value of size 8 - at 0x........: (within /...libc...) - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: main (malloc_free_fill.c:17) - -Conditional jump or move depends on uninitialised value(s) - at 0x........: (within /...libc...) - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: main (malloc_free_fill.c:17) - -Conditional jump or move depends on uninitialised value(s) - at 0x........: vfprintf (in /...libc...) - by 0x........: ... - by 0x........: ... - by 0x........: ... - by 0x........: main (malloc_free_fill.c:17) -(should be malloc-filled) a[4] = 55555555 - -Invalid read of size 4 - at 0x........: main (malloc_free_fill.c:20) - Address 0x........ is 20 bytes inside a block of size 40 free'd - at 0x........: free (vg_replace_malloc.c:...) - by 0x........: main (malloc_free_fill.c:19) -(should be free-filled) a[5] = 77777777 -test realloc-larger: -(should be malloc-filled) r[25] = 55555555 - -Invalid read of size 4 - at 0x........: main (malloc_free_fill.c:33) - Address 0x........ is 104 bytes inside a block of size 120 free'd - at 0x........: realloc (vg_replace_malloc.c:...) - by 0x........: main (malloc_free_fill.c:31) -(should be free-filled) oldr[26] = 77777777 -(should be malloc-filled) r[35] = 55555555 -test realloc-smaller: -(should be malloc-filled) r[25] = 55555555 - -Invalid read of size 4 - at 0x........: main (malloc_free_fill.c:49) - Address 0x........ is not stack'd, malloc'd or (recently) free'd -(should be free-filled) oldr[26] = 77777777 -test calloc: -(should be zero) a[42] = 0 - -ERROR SUMMARY: 67 errors from 6 contexts (suppressed: 0 from 0) -malloc/free: in use at exit: 0 bytes in 0 blocks. -malloc/free: 6 allocs, 6 frees, 920 bytes allocated. -For a detailed leak analysis, rerun with: --leak-check=yes -For counts of detected errors, rerun with: -v -Use --track-origins=yes to see where uninitialised values come from Modified: trunk/memcheck/tests/malloc_free_fill.vgtest =================================================================== --- trunk/memcheck/tests/malloc_free_fill.vgtest 2008-06-26 08:58:25 UTC (rev 8284) +++ trunk/memcheck/tests/malloc_free_fill.vgtest 2008-06-27 07:33:18 UTC (rev 8285) @@ -1,2 +1,3 @@ prog: malloc_free_fill vgopts: --malloc-fill=0x55 --free-fill=0x77 +stderr_filter: filter_malloc_free_fill |
|
From: Tom H. <th...@cy...> - 2008-06-27 02:57:05
|
Nightly build on aston ( x86_64, Fedora Core 5 ) started at 2008-06-27 03:20:07 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 438 tests, 8 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-06-27 02:45:11
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-06-27 03:05:05 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 432 tests, 5 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-06-27 02:42:00
|
Nightly build on trojan ( x86_64, Fedora Core 6 ) started at 2008-06-27 03:25: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 == 436 tests, 8 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap2 (stdout) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-06-27 02:38:46
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-06-27 03:10: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 == 433 tests, 9 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/linux-timerfd-syscall (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (stderr) none/tests/mremap2 (stdout) helgrind/tests/hg05_race2 (stderr) 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 == 433 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/linux-timerfd-syscall (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (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) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Jun 27 03:24:39 2008 --- new.short Fri Jun 27 03:38:53 2008 *************** *** 8,10 **** ! == 433 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 433 tests, 9 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) *************** *** 16,17 **** --- 16,18 ---- none/tests/mremap2 (stdout) + helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc18_semabuse (stderr) |
|
From: Tom H. <th...@cy...> - 2008-06-27 02:23:31
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-06-27 03:00:06 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 == 438 tests, 31 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) |
|
From: <sv...@va...> - 2008-06-26 08:58:21
|
Author: bart
Date: 2008-06-26 09:58:25 +0100 (Thu, 26 Jun 2008)
New Revision: 8284
Log:
Let the compiler print a comprehensible error message if it does not provide built-in functions for atomic memory access.
Modified:
trunk/helgrind/tests/tc11_XCHG.c
Modified: trunk/helgrind/tests/tc11_XCHG.c
===================================================================
--- trunk/helgrind/tests/tc11_XCHG.c 2008-06-26 08:43:12 UTC (rev 8283)
+++ trunk/helgrind/tests/tc11_XCHG.c 2008-06-26 08:58:25 UTC (rev 8284)
@@ -1,4 +1,5 @@
+#include "config.h"
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
@@ -47,6 +48,7 @@
)
#elif defined(PLAT_ppc32_linux) || defined(PLAT_ppc64_linux) \
|| defined(PLAT_ppc32_aix5) || defined(PLAT_ppc64_aix5)
+#ifdef HAVE_BUILTIN_ATOMIC
# define XCHG_M_R(_addr,_lval) \
do { \
int tmp; \
@@ -55,6 +57,9 @@
; \
_lval = tmp; \
} while (0)
+#else
+#error "XCHG_M_R() implementation is missing. Either provide one or use a newer gcc version."
+#endif
# define XCHG_M_R_with_redundant_LOCK(_addr,_lval) \
XCHG_M_R(_addr,_lval)
#else
|
|
From: <sv...@va...> - 2008-06-26 08:43:06
|
Author: bart Date: 2008-06-26 09:43:12 +0100 (Thu, 26 Jun 2008) New Revision: 8283 Log: Added configure test for the gcc/icc built-in functions for atomic memory access (__sync_bool_compare_and_swap() a.o.). Modified: trunk/configure.in Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2008-06-26 08:34:53 UTC (rev 8282) +++ trunk/configure.in 2008-06-26 08:43:12 UTC (rev 8283) @@ -1109,6 +1109,23 @@ fi +# does this compiler have built-in functions for atomic memory access ? +AC_MSG_CHECKING([if gcc supports __sync_bool_compare_and_swap]) + +AC_TRY_LINK(, +[ + int variable = 1; + return __sync_bool_compare_and_swap(&variable, 1, 2) ? 1 : 0 +], +[ + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_BUILTIN_ATOMIC, 1, [Define to 1 if gcc supports __sync_bool_compare_and_swap() a.o.]) +], +[ + AC_MSG_RESULT([no]) +]) + + # does the ppc assembler support "mtocrf" et al? AC_MSG_CHECKING([if ppc32/64 as supports mtocrf/mfocrf]) |
|
From: <sv...@va...> - 2008-06-26 08:34:48
|
Author: bart
Date: 2008-06-26 09:34:53 +0100 (Thu, 26 Jun 2008)
New Revision: 8282
Log:
Added ppc implementation of atomic compare and swap.
Modified:
trunk/helgrind/tests/tc11_XCHG.c
Modified: trunk/helgrind/tests/tc11_XCHG.c
===================================================================
--- trunk/helgrind/tests/tc11_XCHG.c 2008-06-26 07:31:15 UTC (rev 8281)
+++ trunk/helgrind/tests/tc11_XCHG.c 2008-06-26 08:34:53 UTC (rev 8282)
@@ -45,6 +45,18 @@
: /*in*/ "m"(_addr) \
: "memory", "cc" \
)
+#elif defined(PLAT_ppc32_linux) || defined(PLAT_ppc64_linux) \
+ || defined(PLAT_ppc32_aix5) || defined(PLAT_ppc64_aix5)
+# define XCHG_M_R(_addr,_lval) \
+ do { \
+ int tmp; \
+ while ((tmp = *(int*)(& _addr)), \
+ ! __sync_bool_compare_and_swap((int*)&_addr, tmp, _lval)) \
+ ; \
+ _lval = tmp; \
+ } while (0)
+# define XCHG_M_R_with_redundant_LOCK(_addr,_lval) \
+ XCHG_M_R(_addr,_lval)
#else
# define XCHG_M_R(_addr,_lval) \
do { int tmp = *(int*)(& _addr); \
|
|
From: Bart V. A. <bar...@gm...> - 2008-06-26 07:46:35
|
On Wed, May 28, 2008 at 1:22 AM, Julian Seward <js...@ac...> wrote:
>
> Well, the difficulty is that the powerpc way of doing atomic
> test-and-set (etc) is completely different from the x86/amd64
> way. x86 and amd64 make it easy, by allowing a 1-byte LOCK prefix
> byte (0xF0) in front of the instruction. Vex sees that and puts
> Imbe_BusLock and Imbe_BusUnlock around the translation of the
> instruction, so helgrind and drd (and anybody else who cares) can
> see the locking.
Hello Julian,
What is your opinion about the patch below ? This patch allows
Helgrind and DRD to recognize stwcx instructions as atomic: if stwcx
performs a store, bus lock and bus unlock events are passed to
Valgrind tools around the actual store.
Index: priv/guest-ppc/toIR.c
===================================================================
--- priv/guest-ppc/toIR.c (revision 1856)
+++ priv/guest-ppc/toIR.c (working copy)
@@ -4896,7 +4896,9 @@
whether rS is stored is dependent on that value. */
/* Success? Do the (32bit) store */
+ stmt( IRStmt_MBE(Imbe_BusLock) );
storeBE( mkexpr(EA), mkSzNarrow32(ty, mkexpr(rS)) );
+ stmt( IRStmt_MBE(Imbe_BusUnlock) );
// Set CR0[LT GT EQ S0] = 0b001 || XER[SO]
putCR321(0, mkU8(1<<1));
Bart.
|
|
From: <sv...@va...> - 2008-06-26 07:31:08
|
Author: bart Date: 2008-06-26 08:31:15 +0100 (Thu, 26 Jun 2008) New Revision: 8281 Log: Use same flags for OpenMP regression tests as for the other regression tests. Modified: trunk/exp-drd/tests/Makefile.am Modified: trunk/exp-drd/tests/Makefile.am =================================================================== --- trunk/exp-drd/tests/Makefile.am 2008-06-26 07:30:32 UTC (rev 8280) +++ trunk/exp-drd/tests/Makefile.am 2008-06-26 07:31:15 UTC (rev 8281) @@ -366,12 +366,12 @@ if HAVE_OPENMP omp_matinv_SOURCES = omp_matinv.c -omp_matinv_CFLAGS = $(AM_FLAG_M3264_PRI) -fopenmp +omp_matinv_CFLAGS = $(AM_CFLAGS) -fopenmp omp_matinv_LDFLAGS = -fopenmp omp_matinv_LDADD = -lm omp_prime_SOURCES = omp_prime.c -omp_prime_CFLAGS = $(AM_FLAG_M3264_PRI) -fopenmp +omp_prime_CFLAGS = $(AM_CFLAGS) -fopenmp omp_prime_LDFLAGS = -fopenmp omp_prime_LDADD = -lm endif |
|
From: <sv...@va...> - 2008-06-26 07:30:29
|
Author: bart Date: 2008-06-26 08:30:32 +0100 (Thu, 26 Jun 2008) New Revision: 8280 Log: Minor change of the help text. Modified: trunk/exp-drd/drd_main.c Modified: trunk/exp-drd/drd_main.c =================================================================== --- trunk/exp-drd/drd_main.c 2008-06-24 22:22:01 UTC (rev 8279) +++ trunk/exp-drd/drd_main.c 2008-06-26 07:30:32 UTC (rev 8280) @@ -185,8 +185,8 @@ " --var-info=yes|no Display the names of global, static and\n" " stack variables when a race is reported on such a variable. This\n" " information is by default not displayed since for big programs\n" -" reading in all debug information for all variables at once may\n" -" cause an out of memory error [no].\n" +" reading in all debug information at once may cause an out of\n" +" memory error [no].\n" "\n" " exp-drd options for monitoring process behavior:\n" " --trace-addr=<address> Trace all load and store activity for the.\n" |
|
From: Tom H. <th...@cy...> - 2008-06-26 02:57:10
|
Nightly build on aston ( x86_64, Fedora Core 5 ) started at 2008-06-26 03:20: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 == 438 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc08_hbl2 (stdout) 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 == 438 tests, 8 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Jun 26 03:39:08 2008 --- new.short Thu Jun 26 03:57:14 2008 *************** *** 8,10 **** ! == 438 tests, 8 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 438 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) *************** *** 15,16 **** --- 15,17 ---- none/tests/mremap2 (stdout) + helgrind/tests/tc08_hbl2 (stdout) helgrind/tests/tc20_verifywrap (stderr) |
|
From: Tom H. <th...@cy...> - 2008-06-26 02:51:50
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-06-26 03:05:08 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 == 432 tests, 5 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) |
|
From: Tom H. <th...@cy...> - 2008-06-26 02:42:11
|
Nightly build on trojan ( x86_64, Fedora Core 6 ) started at 2008-06-26 03:25:05 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 436 tests, 7 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap2 (stdout) 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 == 436 tests, 8 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap2 (stdout) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Jun 26 03:33:42 2008 --- new.short Thu Jun 26 03:42:19 2008 *************** *** 8,10 **** ! == 436 tests, 8 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 436 tests, 7 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) *************** *** 18,20 **** none/tests/mremap2 (stdout) - helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc20_verifywrap (stderr) --- 18,19 ---- |
|
From: Tom H. <th...@cy...> - 2008-06-26 02:39:56
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-06-26 03:10:05 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 432 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (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 == 432 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (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 Thu Jun 26 03:25:01 2008 --- new.short Thu Jun 26 03:40:02 2008 *************** *** 8,10 **** ! == 432 tests, 8 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 432 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (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-06-26 02:23:46
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-06-26 03:00:10 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 == 438 tests, 31 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) |