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
(10) |
2
(1) |
|
3
(13) |
4
(13) |
5
(15) |
6
(12) |
7
(16) |
8
(18) |
9
(19) |
|
10
(13) |
11
(19) |
12
(11) |
13
(20) |
14
(20) |
15
(26) |
16
(12) |
|
17
(16) |
18
(19) |
19
(13) |
20
(24) |
21
(18) |
22
(23) |
23
(17) |
|
24
(19) |
25
(13) |
26
(22) |
27
(13) |
28
(17) |
29
(24) |
30
(14) |
|
31
(10) |
|
|
|
|
|
|
|
From: <sv...@va...> - 2014-08-29 23:24:38
|
Author: philippe
Date: Fri Aug 29 23:24:20 2014
New Revision: 14393
Log:
document in NEWS the fact that stack registration start/end boundaries
are the lowest/highest addressable bytes
Modified:
trunk/NEWS
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Fri Aug 29 23:24:20 2014
@@ -45,6 +45,11 @@
* ==================== OTHER CHANGES ====================
+* The semantic of stack start/end boundaries in valgrind.h
+ VALGRIND_STACK_REGISTER has been clarified/documented.
+ The convention is that start and end are respectively the lowest
+ and highest addressable bytes of the stack.
+
* Better stacktraces and suppression matching for inlined function calls.
The new option --read-inline-info=yes|no allows to control the reading
of the dwarf debug information describing inlined function calls.
|
Author: philippe
Date: Fri Aug 29 22:53:19 2014
New Revision: 14392
Log:
The semantic of the stack bounds is not consistent or is not described.
At various places, there were either some assumption that the 'end'
boundary (highest address) was either not included, included,
or was the highest addressable word, or the highest addressable byte.
This e.g. was very visible when doing:
./vg-in-place -d -d ./helgrind/tests/tc01_simple_race|&grep regi
giving
--24040:2:stacks register 0xBEDB4000-0xBEDB4FFF as stack 0
--24040:2:stacks register 0x402C000-0x4A2C000 as stack 1
showing that the main stack end was (on x86) not the highest word
but the highest byte, while for the thread 1, the registered end
was a byte not part of the stack.
The attached patch ensures that stack bounds semantic are documented and
consistent. Also, some of the stack handling code is factorised.
The convention that the patch ensures and documents is:
start is the lowest addressable byte, end is the highest addressable byte.
(the words 'min' and 'max' have been kept when already used, as this wording is
consistent with the new semantic of start/end).
In various debug log, used brackets [ and ] to make clear that
both bounds are included.
The code to guess and register the client stack was duplicated
in all the platform specific syswrap-<plat>-<os>.c files.
Code has been factorised in syswrap-generic.c
The patch has been regression tested on
x86, amd64, ppc32/64, s390x.
It has been compiled and one test run on arm64.
Not compiled/not tested on darwin, android, mips32/64, arm
More in details, the patch does the following:
coregrind/pub_core_aspacemgr.h
include/valgrind.h
include/pub_tool_machine.h
coregrind/pub_core_scheduler.h
coregrind/pub_core_stacks.h
- document start/end semantic in various functions
also in pub_tool_machine.h:
- replaces unclear 'bottommost address' by 'lowest address'
(unclear as stack bottom is or at least can be interpreted as
the 'functional' bottom of the stack, which is the highest
address for 'stack growing downwards').
coregrind/pub_core_initimg.h
replace unclear clstack_top by clstack_end
coregrind/m_main.c
updated to clstack_end
coregrind/pub_core_threadstate.h
renamed client_stack_highest_word to client_stack_highest_byte
coregrind/m_scheduler/scheduler.c
computes client_stack_highest_byte as the highest addressable byte
Update comments in call to VG_(show_sched_status)
coregrind/m_machine.c
coregrind/m_stacktrace.c
updated to client_stack_highest_byte, and switched
stack_lowest/highest_word to stack_lowest/highest_byte accordingly
coregrind/m_stacks.c
clarify semantic of start/end,
added a comment to indicate why we invert start/end in register call
(note that the code find_stack_by_addr was already assuming that
end was included as the checks were doing e.g.
sp >= i->start && sp <= i->end
coregrind/pub_core_clientstate.h
coregrind/m_clientstate.c
renames Addr VG_(clstk_base) to Addr VG_(clstk_start_base)
(start to indicate it is the lowest address, base suffix kept
to indicate it is the initial lowest address).
coregrind/m_initimg/initimg-darwin.c
updated to VG_(clstk_start_base)
replace unclear iicii.clstack_top by iicii.clstack_end
updated clstack_max_size computation according to both bounds included.
coregrind/m_initimg/initimg-linux.c
updated to VG_(clstk_start_base)
updated VG_(clstk_end) computation according to both bounds included.
replace unclear iicii.clstack_top by iicii.clstack_end
coregrind/pub_core_aspacemgr.h
extern Addr VG_(am_startup) : clarify semantic of the returned value
coregrind/m_aspacemgr/aspacemgr-linux.c
removed a copy of a comment that was already in pub_core_aspacemgr.h
(avoid double maintenance)
renamed unclear suggested_clstack_top to suggested_clstack_end
(note that here, it looks like suggested_clstack_top was already
the last addressable byte)
* factorisation of the stack guessing and registration causes
mechanical changes in the following files:
coregrind/m_syswrap/syswrap-ppc64-linux.c
coregrind/m_syswrap/syswrap-x86-darwin.c
coregrind/m_syswrap/syswrap-amd64-linux.c
coregrind/m_syswrap/syswrap-arm-linux.c
coregrind/m_syswrap/syswrap-generic.c
coregrind/m_syswrap/syswrap-mips64-linux.c
coregrind/m_syswrap/syswrap-ppc32-linux.c
coregrind/m_syswrap/syswrap-amd64-darwin.c
coregrind/m_syswrap/syswrap-mips32-linux.c
coregrind/m_syswrap/priv_syswrap-generic.h
coregrind/m_syswrap/syswrap-x86-linux.c
coregrind/m_syswrap/syswrap-s390x-linux.c
coregrind/m_syswrap/syswrap-darwin.c
coregrind/m_syswrap/syswrap-arm64-linux.c
Some files to look at more in details:
syswrap-darwin.c : the handling of sysctl(kern.usrstack) looked
buggy to me, and has probably be made correct by the fact that
VG_(clstk_end) is now the last addressable byte. However,unsure
about this, as I could not find any documentation about
sysctl(kern.usrstack). I only find several occurences on the web,
showing that the result of this is page aligned, which I guess
means it must be 1+ the last addressable byte.
syswrap-x86-darwin.c and syswrap-amd64-darwin.c
I suspect the code that was computing client_stack_highest_word
was wrong, and the patch makes it correct.
syswrap-mips64-linux.c
not sure what to do for this code. This is the only code
that was guessing the stack differently from others.
Kept (almost) untouched. To be discussed with mips maintainers.
coregrind/pub_core_libcassert.h
coregrind/m_libcassert.c
* void VG_(show_sched_status):
renamed Bool valgrind_stack_usage to Bool stack_usage
if stack_usage, shows both the valgrind stack usage and
the client stack boundaries
coregrind/m_scheduler/scheduler.c
coregrind/m_gdbserver/server.c
coregrind/m_gdbserver/remote-utils.c
Updated comments in callers to VG_(show_sched_status)
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
trunk/coregrind/m_clientstate.c
trunk/coregrind/m_gdbserver/remote-utils.c
trunk/coregrind/m_gdbserver/server.c
trunk/coregrind/m_initimg/initimg-darwin.c
trunk/coregrind/m_initimg/initimg-linux.c
trunk/coregrind/m_libcassert.c
trunk/coregrind/m_machine.c
trunk/coregrind/m_main.c
trunk/coregrind/m_scheduler/scheduler.c
trunk/coregrind/m_stacks.c
trunk/coregrind/m_stacktrace.c
trunk/coregrind/m_syswrap/priv_syswrap-generic.h
trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-arm-linux.c
trunk/coregrind/m_syswrap/syswrap-arm64-linux.c
trunk/coregrind/m_syswrap/syswrap-darwin.c
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/coregrind/m_syswrap/syswrap-mips32-linux.c
trunk/coregrind/m_syswrap/syswrap-mips64-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
trunk/coregrind/m_syswrap/syswrap-s390x-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-darwin.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
trunk/coregrind/pub_core_aspacemgr.h
trunk/coregrind/pub_core_clientstate.h
trunk/coregrind/pub_core_initimg.h
trunk/coregrind/pub_core_libcassert.h
trunk/coregrind/pub_core_scheduler.h
trunk/coregrind/pub_core_stacks.h
trunk/coregrind/pub_core_threadstate.h
trunk/include/pub_tool_machine.h
trunk/include/valgrind.h
Modified: trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
==============================================================================
--- trunk/coregrind/m_aspacemgr/aspacemgr-linux.c (original)
+++ trunk/coregrind/m_aspacemgr/aspacemgr-linux.c Fri Aug 29 22:53:19 2014
@@ -1609,19 +1609,11 @@
add_segment( &seg );
}
-/* Initialise the address space manager, setting up the initial
- segment list, and reading /proc/self/maps into it. This must
- be called before any other function.
-
- Takes a pointer to the SP at the time V gained control. This is
- taken to be the highest usable address (more or less). Based on
- that (and general consultation of tea leaves, etc) return a
- suggested end address for the client's stack. */
-
+/* See description in pub_core_aspacemgr.h */
Addr VG_(am_startup) ( Addr sp_at_startup )
{
NSegment seg;
- Addr suggested_clstack_top;
+ Addr suggested_clstack_end;
aspacem_assert(sizeof(Word) == sizeof(void*));
aspacem_assert(sizeof(Addr) == sizeof(void*));
@@ -1660,7 +1652,7 @@
// 0x7fff:5c000000..0x7fff:ffe00000? is stack, dyld, shared cache
# endif
- suggested_clstack_top = -1; // ignored; Mach-O specifies its stack
+ suggested_clstack_end = -1; // ignored; Mach-O specifies its stack
#else /* !defined(VGO_darwin) */
@@ -1690,7 +1682,7 @@
aspacem_vStart -= 0x10000000; // 256M
# endif
- suggested_clstack_top = aspacem_maxAddr - 16*1024*1024ULL
+ suggested_clstack_end = aspacem_maxAddr - 16*1024*1024ULL
+ VKI_PAGE_SIZE;
#endif /* #else of 'defined(VGO_darwin)' */
@@ -1699,7 +1691,7 @@
aspacem_assert(VG_IS_PAGE_ALIGNED(aspacem_maxAddr + 1));
aspacem_assert(VG_IS_PAGE_ALIGNED(aspacem_cStart));
aspacem_assert(VG_IS_PAGE_ALIGNED(aspacem_vStart));
- aspacem_assert(VG_IS_PAGE_ALIGNED(suggested_clstack_top + 1));
+ aspacem_assert(VG_IS_PAGE_ALIGNED(suggested_clstack_end + 1));
VG_(debugLog)(2, "aspacem",
" minAddr = 0x%010llx (computed)\n",
@@ -1714,8 +1706,8 @@
" vStart = 0x%010llx (computed)\n",
(ULong)aspacem_vStart);
VG_(debugLog)(2, "aspacem",
- "suggested_clstack_top = 0x%010llx (computed)\n",
- (ULong)suggested_clstack_top);
+ "suggested_clstack_end = 0x%010llx (computed)\n",
+ (ULong)suggested_clstack_end);
if (aspacem_cStart > Addr_MIN) {
init_resvn(&seg, Addr_MIN, aspacem_cStart-1);
@@ -1751,7 +1743,7 @@
VG_(am_show_nsegments)(2, "With contents of /proc/self/maps");
AM_SANITY_CHECK;
- return suggested_clstack_top;
+ return suggested_clstack_end;
}
Modified: trunk/coregrind/m_clientstate.c
==============================================================================
--- trunk/coregrind/m_clientstate.c (original)
+++ trunk/coregrind/m_clientstate.c Fri Aug 29 22:53:19 2014
@@ -45,9 +45,9 @@
// TODO: get rid of as many of these as possible.
/* ***Initial*** lowest address of the stack segment of the main thread.
- The main stack will grow if needed but VG_(clstk_base) will
+ The main stack will grow if needed but VG_(clstk_start_base) will
not be changed according to the growth. */
-Addr VG_(clstk_base) = 0;
+Addr VG_(clstk_start_base) = 0;
/* Initial highest address of the stack segment of the main thread. */
Addr VG_(clstk_end) = 0;
UWord VG_(clstk_id) = 0;
Modified: trunk/coregrind/m_gdbserver/remote-utils.c
==============================================================================
--- trunk/coregrind/m_gdbserver/remote-utils.c (original)
+++ trunk/coregrind/m_gdbserver/remote-utils.c Fri Aug 29 22:53:19 2014
@@ -44,7 +44,7 @@
Int i;
vki_sigset_t cursigset;
VG_(show_sched_status) (True, // host_stacktrace
- True, // valgrind_stack_usage
+ True, // stack_usage
True); // exited_threads
VG_(sigprocmask) (0, // dummy how.
NULL, // do not change the sigmask
Modified: trunk/coregrind/m_gdbserver/server.c
==============================================================================
--- trunk/coregrind/m_gdbserver/server.c (original)
+++ trunk/coregrind/m_gdbserver/server.c Fri Aug 29 22:53:19 2014
@@ -398,7 +398,7 @@
break;
case 5: /* scheduler */
VG_(show_sched_status) (True, // host_stacktrace
- True, // valgrind_stack_usage
+ True, // stack_usage
True); // exited_threads
ret = 1;
break;
Modified: trunk/coregrind/m_initimg/initimg-darwin.c
==============================================================================
--- trunk/coregrind/m_initimg/initimg-darwin.c (original)
+++ trunk/coregrind/m_initimg/initimg-darwin.c Fri Aug 29 22:53:19 2014
@@ -410,7 +410,7 @@
/* Record stack extent -- needed for stack-change code. */
/* GrP fixme really? */
- VG_(clstk_base) = clstack_start;
+ VG_(clstk_start_base) = clstack_start;
VG_(clstk_end) = clstack_end;
if (0)
@@ -548,18 +548,18 @@
// p: load_client() [for 'info']
// p: fix_environment() [for 'env']
//--------------------------------------------------------------
- iicii.clstack_top = info.stack_end - 1;
- iifii.clstack_max_size = info.stack_end - info.stack_start;
+ iicii.clstack_end = info.stack_end;
+ iifii.clstack_max_size = info.stack_end - info.stack_start + 1;
iifii.initial_client_SP =
setup_client_stack( iicii.argv - 1, env, &info,
- iicii.clstack_top, iifii.clstack_max_size );
+ iicii.clstack_end, iifii.clstack_max_size );
VG_(free)(env);
VG_(debugLog)(2, "initimg",
"Client info: "
- "initial_IP=%p initial_SP=%p stack=%p..%p\n",
+ "initial_IP=%p initial_SP=%p stack=[%p..%p]\n",
(void*)(iifii.initial_client_IP),
(void*)(iifii.initial_client_SP),
(void*)(info.stack_start),
Modified: trunk/coregrind/m_initimg/initimg-linux.c
==============================================================================
--- trunk/coregrind/m_initimg/initimg-linux.c (original)
+++ trunk/coregrind/m_initimg/initimg-linux.c Fri Aug 29 22:53:19 2014
@@ -564,8 +564,8 @@
vg_assert(!sr_isError(res));
/* Record stack extent -- needed for stack-change code. */
- VG_(clstk_base) = anon_start -inner_HACK;
- VG_(clstk_end) = VG_(clstk_base) + anon_size +inner_HACK -1;
+ VG_(clstk_start_base) = anon_start -inner_HACK;
+ VG_(clstk_end) = VG_(clstk_start_base) + anon_size +inner_HACK -1;
}
@@ -917,7 +917,7 @@
iifii.initial_client_SP
= setup_client_stack( init_sp, env,
&info, &iifii.client_auxv,
- iicii.clstack_top, iifii.clstack_max_size );
+ iicii.clstack_end, iifii.clstack_max_size );
VG_(free)(env);
Modified: trunk/coregrind/m_libcassert.c
==============================================================================
--- trunk/coregrind/m_libcassert.c (original)
+++ trunk/coregrind/m_libcassert.c Fri Aug 29 22:53:19 2014
@@ -39,6 +39,8 @@
#include "pub_core_libcassert.h"
#include "pub_core_libcprint.h"
#include "pub_core_libcproc.h" // For VG_(gettid)()
+#include "pub_core_machine.h"
+#include "pub_core_stacks.h"
#include "pub_core_stacktrace.h"
#include "pub_core_syscall.h"
#include "pub_core_tooliface.h" // For VG_(details).{name,bug_reports_to}
@@ -294,7 +296,7 @@
// Print the scheduler status.
static void show_sched_status_wrk ( Bool host_stacktrace,
- Bool valgrind_stack_usage,
+ Bool stack_usage,
Bool exited_threads,
UnwindStartRegs* startRegsIN)
{
@@ -349,7 +351,19 @@
VG_(name_of_ThreadStatus)(VG_(threads)[i].status) );
if (VG_(threads)[i].status != VgTs_Empty)
VG_(get_and_pp_StackTrace)( i, BACKTRACE_DEPTH );
- if (valgrind_stack_usage && stack != 0)
+ if (stack_usage && VG_(threads)[i].client_stack_highest_byte != 0 ) {
+ Addr start, end;
+
+ start = end = 0;
+ VG_(stack_limits)(VG_(threads)[i].client_stack_highest_byte,
+ &start, &end);
+ if (start != end)
+ VG_(printf)("client stack range: [%p %p] client SP: %p\n",
+ (void*)start, (void*)end, (void*)VG_(get_SP)(i));
+ else
+ VG_(printf)("client stack range: ???????\n");
+ }
+ if (stack_usage && stack != 0)
VG_(printf)("valgrind stack top usage: %ld of %ld\n",
VG_STACK_ACTIVE_SZB
- VG_(am_get_VgStack_unused_szB)(stack,
@@ -360,11 +374,11 @@
}
void VG_(show_sched_status) ( Bool host_stacktrace,
- Bool valgrind_stack_usage,
+ Bool stack_usage,
Bool exited_threads)
{
show_sched_status_wrk (host_stacktrace,
- valgrind_stack_usage,
+ stack_usage,
exited_threads,
NULL);
}
@@ -374,7 +388,7 @@
UnwindStartRegs* startRegsIN )
{
show_sched_status_wrk (True, // host_stacktrace
- False, // valgrind_stack_usage
+ False, // stack_usage
False, // exited_threads
startRegsIN);
VG_(printf)(
@@ -485,7 +499,7 @@
VG_(umsg)("Valgrind has to exit now. Sorry. Bye!\n");
VG_(umsg)("\n");
VG_(show_sched_status)(False, // host_stacktrace
- False, // valgrind_stack_usage
+ False, // stack_usage
False); // exited_threads
VG_(exit)(1);
}
Modified: trunk/coregrind/m_machine.c
==============================================================================
--- trunk/coregrind/m_machine.c (original)
+++ trunk/coregrind/m_machine.c Fri Aug 29 22:53:19 2014
@@ -380,7 +380,7 @@
if (VG_(threads)[i].status != VgTs_Empty) {
*tid = i;
*stack_min = VG_(get_SP)(i);
- *stack_max = VG_(threads)[i].client_stack_highest_word;
+ *stack_max = VG_(threads)[i].client_stack_highest_byte;
return True;
}
}
@@ -391,7 +391,7 @@
{
vg_assert(0 <= tid && tid < VG_N_THREADS && tid != VG_INVALID_THREADID);
vg_assert(VG_(threads)[tid].status != VgTs_Empty);
- return VG_(threads)[tid].client_stack_highest_word;
+ return VG_(threads)[tid].client_stack_highest_byte;
}
SizeT VG_(thread_get_stack_size)(ThreadId tid)
Modified: trunk/coregrind/m_main.c
==============================================================================
--- trunk/coregrind/m_main.c (original)
+++ trunk/coregrind/m_main.c Fri Aug 29 22:53:19 2014
@@ -1649,7 +1649,7 @@
vg_assert(VKI_PAGE_SIZE <= VKI_MAX_PAGE_SIZE);
vg_assert(VKI_PAGE_SIZE == (1 << VKI_PAGE_SHIFT));
vg_assert(VKI_MAX_PAGE_SIZE == (1 << VKI_MAX_PAGE_SHIFT));
- the_iicii.clstack_top = VG_(am_startup)( the_iicii.sp_at_startup );
+ the_iicii.clstack_end = VG_(am_startup)( the_iicii.sp_at_startup );
VG_(debugLog)(1, "main", "Address space manager is running\n");
//--------------------------------------------------------------
@@ -2365,7 +2365,7 @@
//--------------------------------------------------------------
// register client stack
//--------------------------------------------------------------
- VG_(clstk_id) = VG_(register_stack)(VG_(clstk_base), VG_(clstk_end));
+ VG_(clstk_id) = VG_(register_stack)(VG_(clstk_start_base), VG_(clstk_end));
//--------------------------------------------------------------
// Show the address space state so far
Modified: trunk/coregrind/m_scheduler/scheduler.c
==============================================================================
--- trunk/coregrind/m_scheduler/scheduler.c (original)
+++ trunk/coregrind/m_scheduler/scheduler.c Fri Aug 29 22:53:19 2014
@@ -620,7 +620,7 @@
VG_(threads)[i].status = VgTs_Empty;
VG_(threads)[i].client_stack_szB = 0;
- VG_(threads)[i].client_stack_highest_word = (Addr)NULL;
+ VG_(threads)[i].client_stack_highest_byte = (Addr)NULL;
VG_(threads)[i].err_disablement_level = 0;
VG_(threads)[i].thread_name = NULL;
}
@@ -656,8 +656,8 @@
vg_assert(VG_IS_PAGE_ALIGNED(clstack_end+1));
vg_assert(VG_IS_PAGE_ALIGNED(clstack_size));
- VG_(threads)[tid_main].client_stack_highest_word
- = clstack_end + 1 - sizeof(UWord);
+ VG_(threads)[tid_main].client_stack_highest_byte
+ = clstack_end;
VG_(threads)[tid_main].client_stack_szB
= clstack_size;
@@ -2167,7 +2167,7 @@
VG_(printf)("\n------------ Sched State at %d ms ------------\n",
(Int)now);
VG_(show_sched_status)(True, // host_stacktrace
- True, // valgrind_stack_usage
+ True, // stack_usage
True); // exited_threads);
}
}
Modified: trunk/coregrind/m_stacks.c
==============================================================================
--- trunk/coregrind/m_stacks.c (original)
+++ trunk/coregrind/m_stacks.c Fri Aug 29 22:53:19 2014
@@ -87,8 +87,8 @@
*/
typedef struct _Stack {
UWord id;
- Addr start;
- Addr end;
+ Addr start; // Lowest stack byte, included.
+ Addr end; // Highest stack byte, included.
struct _Stack *next;
} Stack;
@@ -183,6 +183,9 @@
Stack *i;
if (start > end) {
+ /* If caller provides addresses in reverse order, swap them.
+ Ugly but not doing that breaks backward compatibility with
+ (user) code registering stacks with start/end inverted . */
Addr t = end;
end = start;
start = t;
@@ -199,7 +202,7 @@
current_stack = i;
}
- VG_(debugLog)(2, "stacks", "register %p-%p as stack %lu\n",
+ VG_(debugLog)(2, "stacks", "register [%p-%p] as stack %lu\n",
(void*)start, (void*)end, i->id);
return i->id;
@@ -246,9 +249,11 @@
while (i) {
if (i->id == id) {
- VG_(debugLog)(2, "stacks", "change stack %lu from %p-%p to %p-%p\n",
+ VG_(debugLog)(2, "stacks",
+ "change stack %lu from [%p-%p] to [%p-%p]\n",
id, (void*)i->start, (void*)i->end,
(void*)start, (void*)end);
+ /* FIXME : swap start/end like VG_(register_stack) ??? */
i->start = start;
i->end = end;
return;
@@ -271,7 +276,6 @@
}
}
-
/* complaints_stack_switch reports that SP has changed by more than some
threshold amount (by default, 2MB). We take this to mean that the
application is switching to a new stack, for whatever reason.
Modified: trunk/coregrind/m_stacktrace.c
==============================================================================
--- trunk/coregrind/m_stacktrace.c (original)
+++ trunk/coregrind/m_stacktrace.c Fri Aug 29 22:53:19 2014
@@ -1395,8 +1395,8 @@
VG_(memset)( &startRegs, 0, sizeof(startRegs) );
VG_(get_UnwindStartRegs)( &startRegs, tid );
- Addr stack_highest_word = VG_(threads)[tid].client_stack_highest_word;
- Addr stack_lowest_word = 0;
+ Addr stack_highest_byte = VG_(threads)[tid].client_stack_highest_byte;
+ Addr stack_lowest_byte = 0;
# if defined(VGP_x86_linux)
/* Nasty little hack to deal with syscalls - if libc is using its
@@ -1428,7 +1428,7 @@
/* See if we can get a better idea of the stack limits */
VG_(stack_limits)( (Addr)startRegs.r_sp,
- &stack_lowest_word, &stack_highest_word );
+ &stack_lowest_byte, &stack_highest_byte );
/* Take into account the first_ip_delta. */
startRegs.r_pc += (Long)(Word)first_ip_delta;
@@ -1436,13 +1436,13 @@
if (0)
VG_(printf)("tid %d: stack_highest=0x%08lx ip=0x%010llx "
"sp=0x%010llx\n",
- tid, stack_highest_word,
+ tid, stack_highest_byte,
startRegs.r_pc, startRegs.r_sp);
return VG_(get_StackTrace_wrk)(tid, ips, max_n_ips,
sps, fps,
&startRegs,
- stack_highest_word);
+ stack_highest_byte);
}
static void printIpDesc(UInt n, Addr ip, void* uu_opaque)
Modified: trunk/coregrind/m_syswrap/priv_syswrap-generic.h
==============================================================================
--- trunk/coregrind/m_syswrap/priv_syswrap-generic.h (original)
+++ trunk/coregrind/m_syswrap/priv_syswrap-generic.h Fri Aug 29 22:53:19 2014
@@ -36,6 +36,12 @@
#include "priv_types_n_macros.h" // DECL_TEMPLATE
+/* Guess the client stack from the segment in which sp is mapped.
+ Register the guessed stack using VG_(register_stack).
+ Setup tst client_stack_highest_byte and client_stack_szB.
+ If sp is not in a mapped segment, does nothing. */
+extern void ML_(guess_and_register_stack) (Addr sp, ThreadState* tst);
+
// Return true if address range entirely contained within client
// address space.
extern
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c Fri Aug 29 22:53:19 2014
@@ -373,7 +373,7 @@
if ((flags & 0x01000000) == 0) {
// kernel allocated stack - needs mapping
Addr stack = VG_PGROUNDUP(sp) - stacksize;
- tst->client_stack_highest_word = stack+stacksize;
+ tst->client_stack_highest_byte = stack+stacksize-1;
tst->client_stack_szB = stacksize;
// pthread structure
@@ -547,7 +547,7 @@
record_named_port(tst->tid, kport, MACH_PORT_RIGHT_SEND, "wqthread-%p");
// kernel allocated stack - needs mapping
- tst->client_stack_highest_word = stack+stacksize;
+ tst->client_stack_highest_byte = stack+stacksize-1;
tst->client_stack_szB = stacksize;
// GrP fixme scheduler lock?!
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c Fri Aug 29 22:53:19 2014
@@ -210,7 +210,6 @@
ThreadState* ptst = VG_(get_ThreadState)(ptid);
ThreadState* ctst = VG_(get_ThreadState)(ctid);
UWord* stack;
- NSegment const* seg;
SysRes res;
Long rax;
vki_sigset_t blockall, savedmask;
@@ -264,27 +263,7 @@
See #226116. */
ctst->os_state.threadgroup = ptst->os_state.threadgroup;
- /* We don't really know where the client stack is, because its
- allocated by the client. The best we can do is look at the
- memory mappings and try to derive some useful information. We
- assume that esp starts near its highest possible value, and can
- only go down to the start of the mmaped segment. */
- seg = VG_(am_find_nsegment)((Addr)rsp);
- if (seg && seg->kind != SkResvn) {
- ctst->client_stack_highest_word = (Addr)VG_PGROUNDUP(rsp);
- ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
-
- VG_(register_stack)(seg->start, ctst->client_stack_highest_word);
-
- if (debug)
- VG_(printf)("tid %d: guessed client stack range %#lx-%#lx\n",
- ctid, seg->start, VG_PGROUNDUP(rsp));
- } else {
- VG_(message)(Vg_UserMsg,
- "!? New thread %d starts with RSP(%#lx) unmapped\n",
- ctid, rsp);
- ctst->client_stack_szB = 0;
- }
+ ML_(guess_and_register_stack) (rsp, ctst);
/* Assume the clone will succeed, and tell any tool that wants to
know that this thread has come into existence. If the clone
Modified: trunk/coregrind/m_syswrap/syswrap-arm-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-arm-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-arm-linux.c Fri Aug 29 22:53:19 2014
@@ -177,7 +177,6 @@
ThreadState* ctst = VG_(get_ThreadState)(ctid);
UInt r0;
UWord *stack;
- NSegment const* seg;
SysRes res;
vki_sigset_t blockall, savedmask;
@@ -215,20 +214,7 @@
See #226116. */
ctst->os_state.threadgroup = ptst->os_state.threadgroup;
- seg = VG_(am_find_nsegment)((Addr)sp);
- if (seg && seg->kind != SkResvn) {
- ctst->client_stack_highest_word = (Addr)VG_PGROUNDUP(sp);
- ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
-
- VG_(register_stack)(seg->start, ctst->client_stack_highest_word);
-
- if (debug)
- VG_(printf)("tid %d: guessed client stack range %#lx-%#lx\n",
- ctid, seg->start, VG_PGROUNDUP(sp));
- } else {
- VG_(message)(Vg_UserMsg, "!? New thread %d starts with sp+%#lx) unmapped\n", ctid, sp);
- ctst->client_stack_szB = 0;
- }
+ ML_(guess_and_register_stack) (sp, ctst);
vg_assert(VG_(owns_BigLock_LL)(ptid));
VG_TRACK ( pre_thread_ll_create, ptid, ctid );
Modified: trunk/coregrind/m_syswrap/syswrap-arm64-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-arm64-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-arm64-linux.c Fri Aug 29 22:53:19 2014
@@ -226,7 +226,6 @@
ThreadState* ptst = VG_(get_ThreadState)(ptid);
ThreadState* ctst = VG_(get_ThreadState)(ctid);
UWord* stack;
- NSegment const* seg;
SysRes res;
ULong x0;
vki_sigset_t blockall, savedmask;
@@ -280,28 +279,7 @@
See #226116. */
ctst->os_state.threadgroup = ptst->os_state.threadgroup;
- /* We don't really know where the client stack is, because its
- allocated by the client. The best we can do is look at the
- memory mappings and try to derive some useful information. We
- assume that xsp starts near its highest possible value, and can
- only go down to the start of the mmaped segment. */
- seg = VG_(am_find_nsegment)((Addr)child_xsp);
- if (seg && seg->kind != SkResvn) {
- ctst->client_stack_highest_word = (Addr)VG_PGROUNDUP(child_xsp);
- ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
-
- VG_(register_stack)(seg->start, ctst->client_stack_highest_word);
-
- if (debug)
- VG_(printf)("tid %d: guessed client stack range %#lx-%#lx\n",
- ctid, seg->start, VG_PGROUNDUP(child_xsp));
- } else {
- VG_(message)(
- Vg_UserMsg,
- "!? New thread %d starts with sp+%#lx) unmapped\n", ctid, child_xsp
- );
- ctst->client_stack_szB = 0;
- }
+ ML_(guess_and_register_stack)(child_xsp, ctst);
/* Assume the clone will succeed, and tell any tool that wants to
know that this thread has come into existence. If the clone
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c Fri Aug 29 22:53:19 2014
@@ -174,26 +174,7 @@
void find_stack_segment(ThreadId tid, Addr sp)
{
- /* We don't really know where the client stack is, because it's
- allocated by the client. The best we can do is look at the
- memory mappings and try to derive some useful information. We
- assume that esp starts near its highest possible value, and can
- only go down to the start of the mmaped segment. */
- ThreadState *tst = VG_(get_ThreadState)(tid);
- const NSegment *seg = VG_(am_find_nsegment)(sp);
- if (seg && seg->kind != SkResvn) {
- tst->client_stack_highest_word = (Addr)VG_PGROUNDUP(sp);
- tst->client_stack_szB = tst->client_stack_highest_word - seg->start;
-
- if (1)
- VG_(printf)("tid %d: guessed client stack range %#lx-%#lx\n",
- tid, seg->start, VG_PGROUNDUP(sp));
- } else {
- VG_(printf)("couldn't find user stack\n");
- VG_(message)(Vg_UserMsg, "!? New thread %d starts with SP(%#lx) unmapped\n",
- tid, sp);
- tst->client_stack_szB = 0;
- }
+ ML_(guess_and_register_stack) (sp, VG_(get_ThreadState)(tid));
}
@@ -3783,6 +3764,10 @@
Addr *oldp = (Addr *)ARG3;
size_t *oldlenp = (size_t *)ARG4;
if (oldlenp) {
+ // According to some searches on the net, it looks like USRSTACK
+ // gives the address of the byte following the highest byte of the stack
+ // As VG_(clstk_end) is the address of the highest addressable byte, we
+ // add +1.
Addr stack_end = VG_(clstk_end)+1;
size_t oldlen = *oldlenp;
// always return actual size
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-generic.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c Fri Aug 29 22:53:19 2014
@@ -60,6 +60,7 @@
#include "pub_core_syswrap.h"
#include "pub_core_tooliface.h"
#include "pub_core_ume.h"
+#include "pub_core_stacks.h"
#include "priv_types_n_macros.h"
#include "priv_syswrap-generic.h"
@@ -67,6 +68,35 @@
#include "config.h"
+void ML_(guess_and_register_stack) (Addr sp, ThreadState* tst)
+{
+ Bool debug = False;
+ NSegment const* seg;
+
+ /* We don't really know where the client stack is, because its
+ allocated by the client. The best we can do is look at the
+ memory mappings and try to derive some useful information. We
+ assume that sp starts near its highest possible value, and can
+ only go down to the start of the mmaped segment. */
+ seg = VG_(am_find_nsegment)(sp);
+ if (seg && seg->kind != SkResvn) {
+ tst->client_stack_highest_byte = (Addr)VG_PGROUNDUP(sp)-1;
+ tst->client_stack_szB = tst->client_stack_highest_byte - seg->start + 1;
+
+ VG_(register_stack)(seg->start, tst->client_stack_highest_byte);
+
+ if (debug)
+ VG_(printf)("tid %d: guessed client stack range [%#lx-%#lx]\n",
+ tst->tid, seg->start, tst->client_stack_highest_byte);
+ } else {
+ VG_(message)(Vg_UserMsg,
+ "!? New thread %d starts with SP(%#lx) unmapped\n",
+ tst->tid, sp);
+ tst->client_stack_highest_byte = 0;
+ tst->client_stack_szB = 0;
+ }
+}
+
/* Returns True iff address range is something the client can
plausibly mess with: all of it is either already belongs to the
client or is free or a reservation. */
Modified: trunk/coregrind/m_syswrap/syswrap-mips32-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-mips32-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-mips32-linux.c Fri Aug 29 22:53:19 2014
@@ -248,7 +248,6 @@
ThreadState * ctst = VG_ (get_ThreadState) (ctid);
UInt ret = 0;
UWord * stack;
- NSegment const *seg;
SysRes res;
vki_sigset_t blockall, savedmask;
@@ -283,22 +282,8 @@
See #226116. */
ctst->os_state.threadgroup = ptst->os_state.threadgroup;
- seg = VG_ (am_find_nsegment) ((Addr) sp);
- if (seg && seg->kind != SkResvn) {
- ctst->client_stack_highest_word = (Addr) VG_PGROUNDUP (sp);
- ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
- VG_ (register_stack) (seg->start, ctst->client_stack_highest_word);
- if (debug)
- VG_ (printf) ("tid %d: guessed client stack range %#lx-%#lx\n",
-
- ctid, seg->start, VG_PGROUNDUP (sp));
- } else {
- VG_ (message) (Vg_UserMsg,
- "!? New thread %d starts with sp+%#lx) unmapped\n",
- ctid, sp);
- ctst->client_stack_szB = 0;
- }
+ ML_(guess_and_register_stack) (sp, ctst);
VG_TRACK (pre_thread_ll_create, ptid, ctid);
if (flags & VKI_CLONE_SETTLS) {
Modified: trunk/coregrind/m_syswrap/syswrap-mips64-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-mips64-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-mips64-linux.c Fri Aug 29 22:53:19 2014
@@ -232,10 +232,12 @@
ctst->os_state.threadgroup = ptst->os_state.threadgroup;
seg = VG_(am_find_nsegment)((Addr)sp);
+ // FIXME mips64: the below differs significantly from the code
+ // factorised in syswrap-generic.c e.g. does not round sp ????
if (seg && seg->kind != SkResvn) {
- ctst->client_stack_highest_word = sp;
- ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
- VG_(register_stack)(seg->start, ctst->client_stack_highest_word);
+ ctst->client_stack_highest_byte = sp;
+ ctst->client_stack_szB = ctst->client_stack_highest_byte - seg->start + 1;
+ VG_(register_stack)(seg->start, ctst->client_stack_highest_byte);
if (debug)
VG_(printf)("tid %d: guessed client stack range %#lx-%#lx\n",
ctid, seg->start, sp /* VG_PGROUNDUP (sp) */ );
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c Fri Aug 29 22:53:19 2014
@@ -244,7 +244,6 @@
ThreadState* ctst = VG_(get_ThreadState)(ctid);
ULong word64;
UWord* stack;
- NSegment const* seg;
SysRes res;
vki_sigset_t blockall, savedmask;
@@ -310,27 +309,7 @@
See #226116. */
ctst->os_state.threadgroup = ptst->os_state.threadgroup;
- /* We don't really know where the client stack is, because its
- allocated by the client. The best we can do is look at the
- memory mappings and try to derive some useful information. We
- assume that esp starts near its highest possible value, and can
- only go down to the start of the mmaped segment. */
- seg = VG_(am_find_nsegment)(sp);
- if (seg && seg->kind != SkResvn) {
- ctst->client_stack_highest_word = (Addr)VG_PGROUNDUP(sp);
- ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
-
- VG_(register_stack)(seg->start, ctst->client_stack_highest_word);
-
- if (debug)
- VG_(printf)("\ntid %d: guessed client stack range %#lx-%#lx\n",
- ctid, seg->start, VG_PGROUNDUP(sp));
- } else {
- VG_(message)(Vg_UserMsg,
- "!? New thread %d starts with R1(%#lx) unmapped\n",
- ctid, sp);
- ctst->client_stack_szB = 0;
- }
+ ML_(guess_and_register_stack) (sp, ctst);
/* Assume the clone will succeed, and tell any tool that wants to
know that this thread has come into existence. If the clone
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c Fri Aug 29 22:53:19 2014
@@ -394,7 +394,6 @@
ThreadState* ctst = VG_(get_ThreadState)(ctid);
ULong word64;
UWord* stack;
- NSegment const* seg;
SysRes res;
vki_sigset_t blockall, savedmask;
@@ -460,27 +459,7 @@
See #226116. */
ctst->os_state.threadgroup = ptst->os_state.threadgroup;
- /* We don't really know where the client stack is, because its
- allocated by the client. The best we can do is look at the
- memory mappings and try to derive some useful information. We
- assume that esp starts near its highest possible value, and can
- only go down to the start of the mmaped segment. */
- seg = VG_(am_find_nsegment)(sp);
- if (seg && seg->kind != SkResvn) {
- ctst->client_stack_highest_word = (Addr)VG_PGROUNDUP(sp);
- ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
-
- VG_(register_stack)(seg->start, ctst->client_stack_highest_word);
-
- if (debug)
- VG_(printf)("\ntid %d: guessed client stack range %#lx-%#lx\n",
- ctid, seg->start, VG_PGROUNDUP(sp));
- } else {
- VG_(message)(Vg_UserMsg,
- "!? New thread %d starts with R1(%#lx) unmapped\n",
- ctid, sp);
- ctst->client_stack_szB = 0;
- }
+ ML_(guess_and_register_stack) (sp, ctst);
/* Assume the clone will succeed, and tell any tool that wants to
know that this thread has come into existence. If the clone
Modified: trunk/coregrind/m_syswrap/syswrap-s390x-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-s390x-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-s390x-linux.c Fri Aug 29 22:53:19 2014
@@ -216,7 +216,6 @@
ThreadState* ptst = VG_(get_ThreadState)(ptid);
ThreadState* ctst = VG_(get_ThreadState)(ctid);
UWord* stack;
- NSegment const* seg;
SysRes res;
ULong r2;
vki_sigset_t blockall, savedmask;
@@ -262,27 +261,7 @@
/* have the parents thread group */
ctst->os_state.threadgroup = ptst->os_state.threadgroup;
- /* We don't really know where the client stack is, because its
- allocated by the client. The best we can do is look at the
- memory mappings and try to derive some useful information. We
- assume that esp starts near its highest possible value, and can
- only go down to the start of the mmaped segment. */
- seg = VG_(am_find_nsegment)((Addr)sp);
- if (seg && seg->kind != SkResvn) {
- ctst->client_stack_highest_word = (Addr)VG_PGROUNDUP(sp);
- ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
-
- VG_(register_stack)(seg->start, ctst->client_stack_highest_word);
-
- if (debug)
- VG_(printf)("tid %d: guessed client stack range %#lx-%#lx\n",
- ctid, seg->start, VG_PGROUNDUP(sp));
- } else {
- VG_(message)(Vg_UserMsg,
- "!? New thread %d starts with SP(%#lx) unmapped\n",
- ctid, sp);
- ctst->client_stack_szB = 0;
- }
+ ML_(guess_and_register_stack) (sp, ctst);
/* Assume the clone will succeed, and tell any tool that wants to
know that this thread has come into existence. If the clone
Modified: trunk/coregrind/m_syswrap/syswrap-x86-darwin.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-x86-darwin.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-x86-darwin.c Fri Aug 29 22:53:19 2014
@@ -314,7 +314,7 @@
if ((flags & 0x01000000) == 0) {
// kernel allocated stack - needs mapping
Addr stack = VG_PGROUNDUP(sp) - stacksize;
- tst->client_stack_highest_word = stack+stacksize;
+ tst->client_stack_highest_byte = stack+stacksize-1;
tst->client_stack_szB = stacksize;
// pthread structure
@@ -475,7 +475,7 @@
record_named_port(tst->tid, kport, MACH_PORT_RIGHT_SEND, "wqthread-%p");
// kernel allocated stack - needs mapping
- tst->client_stack_highest_word = stack+stacksize;
+ tst->client_stack_highest_byte = stack+stacksize-1;
tst->client_stack_szB = stacksize;
// GrP fixme scheduler lock?!
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c Fri Aug 29 22:53:19 2014
@@ -217,7 +217,6 @@
ThreadState* ptst = VG_(get_ThreadState)(ptid);
ThreadState* ctst = VG_(get_ThreadState)(ctid);
UWord* stack;
- NSegment const* seg;
SysRes res;
Int eax;
vki_sigset_t blockall, savedmask;
@@ -275,28 +274,8 @@
See #226116. */
ctst->os_state.threadgroup = ptst->os_state.threadgroup;
- /* We don't really know where the client stack is, because its
- allocated by the client. The best we can do is look at the
- memory mappings and try to derive some useful information. We
- assume that esp starts near its highest possible value, and can
- only go down to the start of the mmaped segment. */
- seg = VG_(am_find_nsegment)((Addr)esp);
- if (seg && seg->kind != SkResvn) {
- ctst->client_stack_highest_word = (Addr)VG_PGROUNDUP(esp);
- ctst->client_stack_szB = ctst->client_stack_highest_word - seg->start;
-
- VG_(register_stack)(seg->start, ctst->client_stack_highest_word);
-
- if (debug)
- VG_(printf)("tid %d: guessed client stack range %#lx-%#lx\n",
- ctid, seg->start, VG_PGROUNDUP(esp));
- } else {
- VG_(message)(Vg_UserMsg,
- "!? New thread %d starts with ESP(%#lx) unmapped\n",
- ctid, esp);
- ctst->client_stack_szB = 0;
- }
-
+ ML_(guess_and_register_stack) (esp, ctst);
+
/* Assume the clone will succeed, and tell any tool that wants to
know that this thread has come into existence. We cannot defer
it beyond this point because sys_set_thread_area, just below,
Modified: trunk/coregrind/pub_core_aspacemgr.h
==============================================================================
--- trunk/coregrind/pub_core_aspacemgr.h (original)
+++ trunk/coregrind/pub_core_aspacemgr.h Fri Aug 29 22:53:19 2014
@@ -58,7 +58,7 @@
Takes a pointer to the SP at the time V gained control. This is
taken to be the highest usable address (more or less). Based on
that (and general consultation of tea leaves, etc) return a
- suggested end address for the client's stack. */
+ suggested end address (highest addressable byte) for the client's stack. */
extern Addr VG_(am_startup) ( Addr sp_at_startup );
Modified: trunk/coregrind/pub_core_clientstate.h
==============================================================================
--- trunk/coregrind/pub_core_clientstate.h (original)
+++ trunk/coregrind/pub_core_clientstate.h Fri Aug 29 22:53:19 2014
@@ -42,8 +42,9 @@
// Address space globals
-extern Addr VG_(clstk_base); // client stack range
-extern Addr VG_(clstk_end);
+// client stack range
+extern Addr VG_(clstk_start_base); // *Initial* lowest byte address
+extern Addr VG_(clstk_end); // Highest byte address
extern UWord VG_(clstk_id); // client stack id
/* linux only: where is the client auxv ? */
Modified: trunk/coregrind/pub_core_initimg.h
==============================================================================
--- trunk/coregrind/pub_core_initimg.h (original)
+++ trunk/coregrind/pub_core_initimg.h Fri Aug 29 22:53:19 2014
@@ -72,7 +72,7 @@
/* ------ Mandatory fields ------ */
const HChar* toolname;
Addr sp_at_startup;
- Addr clstack_top;
+ Addr clstack_end; // Highest stack addressable byte
/* ------ Per-OS fields ------ */
HChar** argv;
HChar** envp;
@@ -96,7 +96,7 @@
/* ------ Mandatory fields ------ */
const HChar* toolname;
Addr sp_at_startup;
- Addr clstack_top;
+ Addr clstack_end; // highest stack addressable byte
/* ------ Per-OS fields ------ */
HChar** argv;
HChar** envp;
Modified: trunk/coregrind/pub_core_libcassert.h
==============================================================================
--- trunk/coregrind/pub_core_libcassert.h (original)
+++ trunk/coregrind/pub_core_libcassert.h Fri Aug 29 22:53:19 2014
@@ -83,11 +83,13 @@
Mostly for debugging V.
The following activates optional output:
host_stacktrace : shows the host stacktrace.
- valgrind_stack_usage : shows how much of the valgrind stack was used.
+ stack_usage True means:
+ shows how much of the valgrind stack was used.
+ shows the client stack range
exited_thread_slots : show information for thread slots that were used
but the thread has now exited. */
extern void VG_(show_sched_status) ( Bool host_stacktrace,
- Bool valgrind_stack_usage,
+ Bool stack_usage,
Bool exited_threads);
#endif // __PUB_CORE_LIBCASSERT_H
Modified: trunk/coregrind/pub_core_scheduler.h
==============================================================================
--- trunk/coregrind/pub_core_scheduler.h (original)
+++ trunk/coregrind/pub_core_scheduler.h Fri Aug 29 22:53:19 2014
@@ -96,7 +96,8 @@
extern ThreadId VG_(scheduler_init_phase1) ( void );
// Initialise, phase 2. Is passed the extent of the root thread's
-// client stack and the root ThreadId decided on by phase 1.
+// client stack end (highest addressable byte) and the root ThreadId
+// decided on by phase 1.
extern void VG_(scheduler_init_phase2) ( ThreadId main_tid,
Addr clstack_end,
SizeT clstack_size );
Modified: trunk/coregrind/pub_core_stacks.h
==============================================================================
--- trunk/coregrind/pub_core_stacks.h (original)
+++ trunk/coregrind/pub_core_stacks.h Fri Aug 29 22:53:19 2014
@@ -38,6 +38,15 @@
// purposes of detecting stack switches.
//--------------------------------------------------------------------
+/* Convention for start and end:
+ 'start' is the lowest address, 'end' is the highest address.
+ 'start' and 'end' bytes are included in the stack.
+ In other words, the stack is the byte interval ['start', 'end']
+ (both bounds are included).
+
+ Note: for compatibility reasons, VG_(register_stack) accepts
+ 'start' bigger than 'end' and will (transparently) swap 'start/end'
+ to register the stack. */
extern UWord VG_(register_stack) ( Addr start, Addr end );
extern void VG_(deregister_stack) ( UWord id );
extern void VG_(change_stack) ( UWord id, Addr start, Addr end );
Modified: trunk/coregrind/pub_core_threadstate.h
==============================================================================
--- trunk/coregrind/pub_core_threadstate.h (original)
+++ trunk/coregrind/pub_core_threadstate.h Fri Aug 29 22:53:19 2014
@@ -341,11 +341,11 @@
/* The allocated size of this thread's stack */
SizeT client_stack_szB;
- /* Address of the highest legitimate word in this stack. This is
+ /* Address of the highest legitimate byte in this stack. This is
used for error messages only -- not critical for execution
correctness. Is is set for all stacks, specifically including
ThreadId == 1 (the main thread). */
- Addr client_stack_highest_word;
+ Addr client_stack_highest_byte;
/* Alternate signal stack */
vki_stack_t altstack;
Modified: trunk/include/pub_tool_machine.h
==============================================================================
--- trunk/include/pub_tool_machine.h (original)
+++ trunk/include/pub_tool_machine.h Fri Aug 29 22:53:19 2014
@@ -142,17 +142,21 @@
// Returns False at the end. 'tid' is the iterator and you can only
// safely change it by making calls to these functions.
extern void VG_(thread_stack_reset_iter) ( /*OUT*/ThreadId* tid );
+// stack_min is the address of the lowest stack byte,
+// stack_max is the address of the highest stack byte.
+// In other words, the live stack is [stack_min, stack_max].
extern Bool VG_(thread_stack_next) ( /*MOD*/ThreadId* tid,
/*OUT*/Addr* stack_min,
/*OUT*/Addr* stack_max );
-// Returns .client_stack_highest_word for the given thread
+// Returns .client_stack_highest_byte for the given thread
+// i.e. the highest addressable byte of the stack.
extern Addr VG_(thread_get_stack_max) ( ThreadId tid );
// Returns how many bytes have been allocated for the stack of the given thread
extern SizeT VG_(thread_get_stack_size) ( ThreadId tid );
-// Returns the bottommost address of the alternate signal stack.
+// Returns the lowest address of the alternate signal stack.
// See also the man page of sigaltstack().
extern Addr VG_(thread_get_altstack_min) ( ThreadId tid );
Modified: trunk/include/valgrind.h
==============================================================================
--- trunk/include/valgrind.h (original)
+++ trunk/include/valgrind.h Fri Aug 29 22:53:19 2014
@@ -6507,7 +6507,9 @@
VG_USERREQ__MEMPOOL_EXISTS, \
pool, 0, 0, 0, 0)
-/* Mark a piece of memory as being a stack. Returns a stack id. */
+/* Mark a piece of memory as being a stack. Returns a stack id.
+ start is the lowest addressable stack byte, end is the highest
+ addressable stack byte. */
#define VALGRIND_STACK_REGISTER(start, end) \
(unsigned)VALGRIND_DO_CLIENT_REQUEST_EXPR(0, \
VG_USERREQ__STACK_REGISTER, \
@@ -6519,7 +6521,9 @@
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__STACK_DEREGISTER, \
id, 0, 0, 0, 0)
-/* Change the start and end address of the stack id. */
+/* Change the start and end address of the stack id.
+ start is the new lowest addressable stack byte, end is the new highest
+ addressable stack byte. */
#define VALGRIND_STACK_CHANGE(id, start, end) \
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__STACK_CHANGE, \
id, start, end, 0, 0)
|
|
From: <sv...@va...> - 2014-08-29 22:49:27
|
Author: philippe
Date: Fri Aug 29 22:49:21 2014
New Revision: 14391
Log:
make prereq fail with 1 if host command not installed
as prereq must return 0 or 1. Any other return value aborts the regtests.
Modified:
trunk/none/tests/res_search.vgtest
Modified: trunk/none/tests/res_search.vgtest
==============================================================================
--- trunk/none/tests/res_search.vgtest (original)
+++ trunk/none/tests/res_search.vgtest Fri Aug 29 22:49:21 2014
@@ -1,4 +1,4 @@
-prereq: host www.yahoo.com > /dev/null
+prereq: which host >/dev/null 2>/dev/null && host www.yahoo.com > /dev/null
prog: res_search
args: www.yahoo.com
vgopts: -q
|
|
From: <sv...@va...> - 2014-08-29 22:48:35
|
Author: philippe
Date: Fri Aug 29 22:48:27 2014
New Revision: 14390
Log:
Add missing file in EXTRA_DIST
Modified:
trunk/exp-sgcheck/tests/Makefile.am
Modified: trunk/exp-sgcheck/tests/Makefile.am
==============================================================================
--- trunk/exp-sgcheck/tests/Makefile.am (original)
+++ trunk/exp-sgcheck/tests/Makefile.am Fri Aug 29 22:48:27 2014
@@ -9,6 +9,7 @@
bad_percentify.stdout.exp bad_percentify.stderr.exp-glibc28-amd64 \
globalerr.vgtest globalerr.stdout.exp \
globalerr.stderr.exp-glibc28-amd64 \
+ globalerr.stderr.exp-gcc491-amd64 \
hackedbz2.vgtest hackedbz2.stdout.exp \
hackedbz2.stderr.exp-glibc28-amd64 \
hsg.vgtest hsg.stdout.exp hsg.stderr.exp \
|
|
From: <sv...@va...> - 2014-08-29 22:03:03
|
Author: sewardj
Date: Fri Aug 29 22:02:56 2014
New Revision: 14389
Log:
arm64: record the use of x8 as of vex r2938.
Modified:
trunk/docs/internals/register-uses.txt
Modified: trunk/docs/internals/register-uses.txt
==============================================================================
--- trunk/docs/internals/register-uses.txt (original)
+++ trunk/docs/internals/register-uses.txt Fri Aug 29 22:02:56 2014
@@ -143,7 +143,7 @@
r0 int#0 ret#0 (??)
r1 int#1 ret#1 (??)
r2-7 int#2..7
-r8 "Indirect res loc reg"
+r8 "Indirect res loc reg" ProfInc scratch
r9 "Temporary regs" chaining scratch
r10-15 "Temporary regs" avail
r16(IP0)
|
|
From: <sv...@va...> - 2014-08-29 21:58:12
|
Author: sewardj
Date: Fri Aug 29 21:58:03 2014
New Revision: 2938
Log:
Add support for generating ProfInc sequences on ARM64, so as to
make it possible to profile vex-generated ARM64 code.
Modified:
trunk/priv/host_arm64_defs.c
trunk/priv/host_arm64_defs.h
trunk/priv/host_arm64_isel.c
trunk/priv/main_main.c
Modified: trunk/priv/host_arm64_defs.c
==============================================================================
--- trunk/priv/host_arm64_defs.c (original)
+++ trunk/priv/host_arm64_defs.c Fri Aug 29 21:58:03 2014
@@ -89,6 +89,7 @@
HReg hregARM64_X5 ( void ) { return mkHReg(5, HRcInt64, False); }
HReg hregARM64_X6 ( void ) { return mkHReg(6, HRcInt64, False); }
HReg hregARM64_X7 ( void ) { return mkHReg(7, HRcInt64, False); }
+HReg hregARM64_X8 ( void ) { return mkHReg(8, HRcInt64, False); }
HReg hregARM64_X9 ( void ) { return mkHReg(9, HRcInt64, False); }
HReg hregARM64_X10 ( void ) { return mkHReg(10, HRcInt64, False); }
HReg hregARM64_X11 ( void ) { return mkHReg(11, HRcInt64, False); }
@@ -143,7 +144,7 @@
(*arr)[i++] = hregARM64_X5();
(*arr)[i++] = hregARM64_X6();
(*arr)[i++] = hregARM64_X7();
- // X8 .. who knows.
+ // X8 is used as a ProfInc temporary, not available to regalloc.
// X9 is a chaining/spill temporary, not available to regalloc.
// Do we really need all these?
@@ -171,8 +172,8 @@
(*arr)[i++] = hregARM64_D13();
// unavail: x21 as GSP
+ // x8 is used as a ProfInc temporary
// x9 is used as a spill/reload/chaining/call temporary
- // x8 is unassigned
// x30 as LR
// x31 because dealing with the SP-vs-ZR overloading is too
// confusing, and we don't need to do so, so let's just avoid
@@ -188,7 +189,7 @@
//
// If the set of available registers changes or if the e/r status
// changes, be sure to re-check/sync the definition of
- // getHRegUsage for ARMInstr_Call too.
+ // getRegUsage for ARM64Instr_Call too.
vassert(i == *nregs);
}
@@ -1303,6 +1304,11 @@
i->ARM64in.EvCheck.amFailAddr = amFailAddr;
return i;
}
+ARM64Instr* ARM64Instr_ProfInc ( void ) {
+ ARM64Instr* i = LibVEX_Alloc(sizeof(ARM64Instr));
+ i->tag = ARM64in_ProfInc;
+ return i;
+}
/* ... */
@@ -1772,7 +1778,7 @@
vex_printf(", ");
ppHRegARM64(i->ARM64in.VMov.src);
return;
- }
+ }
case ARM64in_EvCheck:
vex_printf("(evCheck) ldr w9,");
ppARM64AMode(i->ARM64in.EvCheck.amCounter);
@@ -1782,16 +1788,10 @@
ppARM64AMode(i->ARM64in.EvCheck.amFailAddr);
vex_printf("; br x9; nofail:");
return;
-//ZZ case ARMin_ProfInc:
-//ZZ vex_printf("(profInc) movw r12,LO16($NotKnownYet); "
-//ZZ "movw r12,HI16($NotKnownYet); "
-//ZZ "ldr r11,[r12]; "
-//ZZ "adds r11,r11,$1; "
-//ZZ "str r11,[r12]; "
-//ZZ "ldr r11,[r12+4]; "
-//ZZ "adc r11,r11,$0; "
-//ZZ "str r11,[r12+4]");
-//ZZ return;
+ case ARM64in_ProfInc:
+ vex_printf("(profInc) imm64-fixed4 x9,$NotKnownYet; "
+ "ldr x8,[x9]; add x8,x8,#1, str x8,[x9]");
+ return;
default:
vex_printf("ppARM64Instr: unhandled case (tag %d)", (Int)i->tag);
vpanic("ppARM64Instr(1)");
@@ -2094,10 +2094,12 @@
addRegUsage_ARM64AMode(u, i->ARM64in.EvCheck.amFailAddr);
addHRegUse(u, HRmWrite, hregARM64_X9()); /* also unavail to RA */
return;
-//ZZ case ARMin_ProfInc:
-//ZZ addHRegUse(u, HRmWrite, hregARM_R12());
-//ZZ addHRegUse(u, HRmWrite, hregARM_R11());
-//ZZ return;
+ case ARM64in_ProfInc:
+ /* Again, pointless to actually state these since neither
+ is available to RA. */
+ addHRegUse(u, HRmWrite, hregARM64_X9()); /* unavail to RA */
+ addHRegUse(u, HRmWrite, hregARM64_X8()); /* unavail to RA */
+ return;
default:
ppARM64Instr(i);
vpanic("getRegUsage_ARM64Instr");
@@ -2325,9 +2327,9 @@
mapRegs_ARM64AMode(m, i->ARM64in.EvCheck.amCounter);
mapRegs_ARM64AMode(m, i->ARM64in.EvCheck.amFailAddr);
return;
-//ZZ case ARMin_ProfInc:
-//ZZ /* hardwires r11 and r12 -- nothing to modify. */
-//ZZ return;
+ case ARM64in_ProfInc:
+ /* hardwires x8 and x9 -- nothing to modify. */
+ return;
default:
ppARM64Instr(i);
vpanic("mapRegs_ARM64Instr");
@@ -5084,33 +5086,26 @@
goto done;
}
-//ZZ case ARMin_ProfInc: {
-//ZZ /* We generate:
-//ZZ (ctrP is unknown now, so use 0x65556555 in the
-//ZZ expectation that a later call to LibVEX_patchProfCtr
-//ZZ will be used to fill in the immediate fields once the
-//ZZ right value is known.)
-//ZZ movw r12, lo16(0x65556555)
-//ZZ movt r12, lo16(0x65556555)
-//ZZ ldr r11, [r12]
-//ZZ adds r11, r11, #1
-//ZZ str r11, [r12]
-//ZZ ldr r11, [r12+4]
-//ZZ adc r11, r11, #0
-//ZZ str r11, [r12+4]
-//ZZ */
-//ZZ p = imm32_to_iregNo_EXACTLY2(p, /*r*/12, 0x65556555);
-//ZZ *p++ = 0xE59CB000;
-//ZZ *p++ = 0xE29BB001;
-//ZZ *p++ = 0xE58CB000;
-//ZZ *p++ = 0xE59CB004;
-//ZZ *p++ = 0xE2ABB000;
-//ZZ *p++ = 0xE58CB004;
-//ZZ /* Tell the caller .. */
-//ZZ vassert(!(*is_profInc));
-//ZZ *is_profInc = True;
-//ZZ goto done;
-//ZZ }
+ case ARM64in_ProfInc: {
+ /* We generate:
+ (ctrP is unknown now, so use 0x6555'7555'8555'9566 in the
+ expectation that a later call to LibVEX_patchProfCtr
+ will be used to fill in the immediate fields once the
+ right value is known.)
+ imm64-exactly4 x9, 0x6555'7555'8555'9566
+ ldr x8, [x9]
+ add x8, x8, #1
+ str x8, [x9]
+ */
+ p = imm64_to_iregNo_EXACTLY4(p, /*x*/9, 0x6555755585559566ULL);
+ *p++ = 0xF9400128;
+ *p++ = 0x91000508;
+ *p++ = 0xF9000128;
+ /* Tell the caller .. */
+ vassert(!(*is_profInc));
+ *is_profInc = True;
+ goto done;
+ }
/* ... */
default:
@@ -5227,27 +5222,25 @@
}
-//ZZ /* Patch the counter address into a profile inc point, as previously
-//ZZ created by the ARMin_ProfInc case for emit_ARMInstr. */
-//ZZ VexInvalRange patchProfInc_ARM ( VexEndness endness_host,
-//ZZ void* place_to_patch,
-//ZZ ULong* location_of_counter )
-//ZZ {
-//ZZ vassert(sizeof(ULong*) == 4);
-//ZZ UInt* p = (UInt*)place_to_patch;
-//ZZ vassert(0 == (3 & (HWord)p));
-//ZZ vassert(is_imm32_to_iregNo_EXACTLY2(p, /*r*/12, 0x65556555));
-//ZZ vassert(p[2] == 0xE59CB000);
-//ZZ vassert(p[3] == 0xE29BB001);
-//ZZ vassert(p[4] == 0xE58CB000);
-//ZZ vassert(p[5] == 0xE59CB004);
-//ZZ vassert(p[6] == 0xE2ABB000);
-//ZZ vassert(p[7] == 0xE58CB004);
-//ZZ imm32_to_iregNo_EXACTLY2(p, /*r*/12,
-//ZZ (UInt)Ptr_to_ULong(location_of_counter));
-//ZZ VexInvalRange vir = {(HWord)p, 8};
-//ZZ return vir;
-//ZZ }
+/* Patch the counter address into a profile inc point, as previously
+ created by the ARM64in_ProfInc case for emit_ARM64Instr. */
+VexInvalRange patchProfInc_ARM64 ( VexEndness endness_host,
+ void* place_to_patch,
+ ULong* location_of_counter )
+{
+ vassert(sizeof(ULong*) == 8);
+ vassert(endness_host == VexEndnessLE);
+ UInt* p = (UInt*)place_to_patch;
+ vassert(0 == (3 & (HWord)p));
+ vassert(is_imm64_to_iregNo_EXACTLY4(p, /*x*/9, 0x6555755585559566ULL));
+ vassert(p[4] == 0xF9400128);
+ vassert(p[5] == 0x91000508);
+ vassert(p[6] == 0xF9000128);
+ imm64_to_iregNo_EXACTLY4(p, /*x*/9,
+ Ptr_to_ULong(location_of_counter));
+ VexInvalRange vir = {(HWord)p, 4*4};
+ return vir;
+}
/*---------------------------------------------------------------*/
/*--- end host_arm64_defs.c ---*/
Modified: trunk/priv/host_arm64_defs.h
==============================================================================
--- trunk/priv/host_arm64_defs.h (original)
+++ trunk/priv/host_arm64_defs.h Fri Aug 29 21:58:03 2014
@@ -52,6 +52,7 @@
extern HReg hregARM64_X5 ( void );
extern HReg hregARM64_X6 ( void );
extern HReg hregARM64_X7 ( void );
+extern HReg hregARM64_X8 ( void );
extern HReg hregARM64_X9 ( void );
extern HReg hregARM64_X10 ( void );
extern HReg hregARM64_X11 ( void );
@@ -507,8 +508,8 @@
ARM64in_VXfromDorS, /* Move Dreg or Sreg(ZX) to an Xreg */
ARM64in_VMov, /* vector reg-reg move, 16, 8 or 4 bytes */
/* infrastructure */
- ARM64in_EvCheck, /* Event check */
-//ZZ ARMin_ProfInc /* 64-bit profile counter increment */
+ ARM64in_EvCheck, /* Event check */
+ ARM64in_ProfInc /* 64-bit profile counter increment */
}
ARM64InstrTag;
@@ -834,11 +835,11 @@
ARM64AMode* amCounter;
ARM64AMode* amFailAddr;
} EvCheck;
-//ZZ struct {
-//ZZ /* No fields. The address of the counter to inc is
-//ZZ installed later, post-translation, by patching it in,
-//ZZ as it is not known at translation time. */
-//ZZ } ProfInc;
+ struct {
+ /* No fields. The address of the counter to inc is
+ installed later, post-translation, by patching it in,
+ as it is not known at translation time. */
+ } ProfInc;
} ARM64in;
}
ARM64Instr;
@@ -909,7 +910,7 @@
extern ARM64Instr* ARM64Instr_EvCheck ( ARM64AMode* amCounter,
ARM64AMode* amFailAddr );
-//ZZ extern ARMInstr* ARMInstr_ProfInc ( void );
+extern ARM64Instr* ARM64Instr_ProfInc ( void );
extern void ppARM64Instr ( ARM64Instr* );
@@ -960,10 +961,10 @@
void* place_to_jump_to_EXPECTED,
void* disp_cp_chain_me );
-//ZZ /* Patch the counter location into an existing ProfInc point. */
-//ZZ extern VexInvalRange patchProfInc_ARM ( VexEndness endness_host,
-//ZZ void* place_to_patch,
-//ZZ ULong* location_of_counter );
+/* Patch the counter location into an existing ProfInc point. */
+extern VexInvalRange patchProfInc_ARM64 ( VexEndness endness_host,
+ void* place_to_patch,
+ ULong* location_of_counter );
#endif /* ndef __VEX_HOST_ARM64_DEFS_H */
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Fri Aug 29 21:58:03 2014
@@ -3844,8 +3844,7 @@
it is zero. It will have to be patched later, but before this
translation is used, by a call to LibVEX_patchProfCtr. */
if (addProfInc) {
- vassert(0);
- //addInstr(env, ARM64Instr_ProfInc());
+ addInstr(env, ARM64Instr_ProfInc());
}
/* Ok, finally we can iterate over the statements. */
Modified: trunk/priv/main_main.c
==============================================================================
--- trunk/priv/main_main.c (original)
+++ trunk/priv/main_main.c Fri Aug 29 21:58:03 2014
@@ -1140,6 +1140,8 @@
patchProfInc = patchProfInc_AMD64; break;
case VexArchARM:
patchProfInc = patchProfInc_ARM; break;
+ case VexArchARM64:
+ patchProfInc = patchProfInc_ARM64; break;
case VexArchS390X:
patchProfInc = patchProfInc_S390; break;
case VexArchPPC32:
|
|
From: <sv...@va...> - 2014-08-29 21:18:28
|
Author: mjw
Date: Fri Aug 29 21:18:17 2014
New Revision: 14388
Log:
With gcc 4.9.1 exp-sgcheck/tests/globalerr sees array "a", not unknown.
Added:
trunk/exp-sgcheck/tests/globalerr.stderr.exp-gcc491-amd64
Added: trunk/exp-sgcheck/tests/globalerr.stderr.exp-gcc491-amd64
==============================================================================
--- trunk/exp-sgcheck/tests/globalerr.stderr.exp-gcc491-amd64 (added)
+++ trunk/exp-sgcheck/tests/globalerr.stderr.exp-gcc491-amd64 Fri Aug 29 21:18:17 2014
@@ -0,0 +1,17 @@
+
+Invalid read of size 2
+ at 0x........: main (globalerr.c:12)
+ Address 0x........ expected vs actual:
+ Expected: global array "a" of size 14 in object with soname "NONE"
+ Actual: unknown
+ Actual: is 0 after Expected
+
+Invalid read of size 2
+ at 0x........: main (globalerr.c:12)
+ Address 0x........ expected vs actual:
+ Expected: global array "b" of size 14 in object with soname "NONE"
+ Actual: global array "a" of size 14 in object with soname "NONE"
+ Actual: is 0 after Expected
+
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
|
|
From: <sv...@va...> - 2014-08-29 19:12:56
|
Author: sewardj
Date: Fri Aug 29 19:12:38 2014
New Revision: 14386
Log:
run_thread_for_a_while: Make the computation of done_this_time less
bogus, and in particular ensure that it can't be zero if in fact the
thread did do some useful work. Fix up a couple of associated
assertions. Fixes #336435.
Modified:
trunk/coregrind/m_scheduler/scheduler.c
Modified: trunk/coregrind/m_scheduler/scheduler.c
==============================================================================
--- trunk/coregrind/m_scheduler/scheduler.c (original)
+++ trunk/coregrind/m_scheduler/scheduler.c Fri Aug 29 19:12:38 2014
@@ -964,7 +964,24 @@
vg_assert(tst->arch.vex.host_EvC_FAILADDR
== (HWord)VG_(fnptr_to_fnentry)( &VG_(disp_cp_evcheck_fail)) );
- done_this_time = *dispatchCtrP - ((Int)tst->arch.vex.host_EvC_COUNTER + 1);
+ /* The number of events done this time is the difference between
+ the event counter originally and what it is now. Except -- if
+ it has gone negative (to -1) then the transition 0 to -1 doesn't
+ correspond to a real executed block, so back it out. It's like
+ this because the event checks decrement the counter first and
+ check it for negativeness second, hence the 0 to -1 transition
+ causes a bailout and the block it happens in isn't executed. */
+ {
+ Int dispatchCtrAfterwards = (Int)tst->arch.vex.host_EvC_COUNTER;
+ done_this_time = *dispatchCtrP - dispatchCtrAfterwards;
+ if (dispatchCtrAfterwards == -1) {
+ done_this_time--;
+ } else {
+ /* If the generated code drives the counter below -1, something
+ is seriously wrong. */
+ vg_assert(dispatchCtrAfterwards >= 0);
+ }
+ }
vg_assert(done_this_time >= 0);
bbs_done += (ULong)done_this_time;
@@ -1285,14 +1302,7 @@
/* For stats purposes only. */
n_scheduling_events_MAJOR++;
- /* Figure out how many bbs to ask vg_run_innerloop to do. Note
- that it decrements the counter before testing it for zero, so
- that if tst->dispatch_ctr is set to N you get at most N-1
- iterations. Also this means that tst->dispatch_ctr must
- exceed zero before entering the innerloop. Also also, the
- decrement is done before the bb is actually run, so you
- always get at least one decrement even if nothing happens. */
- // FIXME is this right?
+ /* Figure out how many bbs to ask vg_run_innerloop to do. */
dispatch_ctr = SCHEDULING_QUANTUM;
/* paranoia ... */
@@ -1337,6 +1347,18 @@
next block to be executed should be no-redir. Then we can
suspend and resume at any point, which isn't the case at
the moment. */
+ /* We can't enter a no-redir translation with the dispatch
+ ctr set to zero, for the reasons commented just above --
+ we need to force it to execute right now. So, if the
+ dispatch ctr is zero, set it to one. Note that this would
+ have the bad side effect of holding the Big Lock arbitrary
+ long should there be an arbitrarily long sequence of
+ back-to-back no-redir translations to run. But we assert
+ just below that this translation cannot request another
+ no-redir jump, so we should be safe against that. */
+ if (dispatch_ctr == 0) {
+ dispatch_ctr = 1;
+ }
handle_noredir_jump( &trc[0],
&dispatch_ctr,
tid );
@@ -1348,6 +1370,8 @@
can, since handle_noredir_jump will assert if the counter
is zero on entry. */
vg_assert(trc[0] != VG_TRC_INNER_COUNTERZERO);
+ /* This asserts the same thing. */
+ vg_assert(dispatch_ctr >= 0);
/* A no-redir translation can't return with a chain-me
request, since chaining in the no-redir cache is too
@@ -1365,7 +1389,7 @@
break;
case VG_TRC_INNER_FASTMISS:
- vg_assert(dispatch_ctr > 0);
+ vg_assert(dispatch_ctr >= 0);
handle_tt_miss(tid);
break;
@@ -1402,7 +1426,7 @@
before swapping to another. That means that short term
spins waiting for hardware to poke memory won't cause a
thread swap. */
- if (dispatch_ctr > 1000)
+ if (dispatch_ctr > 1000)
dispatch_ctr = 1000;
break;
|
|
From: <sv...@va...> - 2014-08-29 18:36:02
|
Author: mjw
Date: Fri Aug 29 18:35:54 2014
New Revision: 14385
Log:
none/tests/res_search.vgtest: Add prereq that domain can be resolved.
Some autobuilders/testers don't allow network access.
Modified:
trunk/none/tests/res_search.vgtest
Modified: trunk/none/tests/res_search.vgtest
==============================================================================
--- trunk/none/tests/res_search.vgtest (original)
+++ trunk/none/tests/res_search.vgtest Fri Aug 29 18:35:54 2014
@@ -1,3 +1,4 @@
+prereq: host www.yahoo.com > /dev/null
prog: res_search
args: www.yahoo.com
vgopts: -q
|
|
From: <sv...@va...> - 2014-08-29 17:34:34
|
Author: petarj
Date: Fri Aug 29 17:34:22 2014
New Revision: 2937
Log:
mips: remove unused macro
Remove unused instance of macro ASM_VOLATILE_CASE(rd, sel).
Modified:
trunk/priv/guest_mips_helpers.c
Modified: trunk/priv/guest_mips_helpers.c
==============================================================================
--- trunk/priv/guest_mips_helpers.c (original)
+++ trunk/priv/guest_mips_helpers.c Fri Aug 29 17:34:22 2014
@@ -1072,9 +1072,6 @@
return x;
}
-#define ASM_VOLATILE_CASE(rd, sel) \
- case rd: asm volatile ("dmfc0 %0, $" #rd ", "#sel"\n\t" :"=r" (x) ); break;
-
#if defined(__mips__) && ((defined(__mips_isa_rev) && __mips_isa_rev >= 2))
UInt mips32_dirtyhelper_rdhwr ( UInt rt, UInt rd )
{
|
|
From: <sv...@va...> - 2014-08-29 17:05:51
|
Author: petarj
Date: Fri Aug 29 17:05:40 2014
New Revision: 2936
Log:
mips: fix typo (IRType/IRTemp)
Fix typo (IRType used instead of IRTemp).
Modified:
trunk/priv/guest_mips_toIR.c
Modified: trunk/priv/guest_mips_toIR.c
==============================================================================
--- trunk/priv/guest_mips_toIR.c (original)
+++ trunk/priv/guest_mips_toIR.c Fri Aug 29 17:05:40 2014
@@ -2249,7 +2249,7 @@
switch(opc2) {
case 0x03: { /* DMUL rd, rs, rt */
DIP("dmul r%d, r%d, r%d", regRd, regRs, regRt);
- IRType t0 = newTemp(Ity_I128);
+ IRTemp t0 = newTemp(Ity_I128);
assign(t0, binop(Iop_MullU64, getIReg(regRs), getIReg(regRt)));
putIReg(regRd, unop(Iop_128to64, mkexpr(t0)));
break;
|
|
From: <sv...@va...> - 2014-08-29 14:28:46
|
Author: mjw
Date: Fri Aug 29 14:28:30 2014
New Revision: 14384
Log:
Use getdents64 syscall on linux.
getdents has been deprecated since linux 2.4 and newer arches (arm64)
might no longer provide the getdents syscall. Use getdents64 for reading
the /proc/self/fd/ dir so --track-fds=yes works reliable on all arches.
Without this the none/tests/fdleak*vgtest might fail.
Modified:
trunk/coregrind/m_libcfile.c
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/include/pub_tool_libcfile.h
trunk/include/vki/vki-linux.h
Modified: trunk/coregrind/m_libcfile.c
==============================================================================
--- trunk/coregrind/m_libcfile.c (original)
+++ trunk/coregrind/m_libcfile.c Fri Aug 29 14:28:30 2014
@@ -522,12 +522,12 @@
return sr_isError(res) ? -1 : sr_Res(res);
}
-Int VG_(getdents) (Int fd, struct vki_dirent *dirp, UInt count)
+Int VG_(getdents64) (Int fd, struct vki_dirent64 *dirp, UInt count)
{
# if defined(VGO_linux)
SysRes res;
/* res = getdents( fd, dirp, count ); */
- res = VG_(do_syscall3)(__NR_getdents, fd, (UWord)dirp, count);
+ res = VG_(do_syscall3)(__NR_getdents64, fd, (UWord)dirp, count);
return sr_isError(res) ? -1 : sr_Res(res);
# elif defined(VGO_darwin)
I_die_here;
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-generic.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c Fri Aug 29 14:28:30 2014
@@ -837,7 +837,7 @@
// DDD: should probably use HAVE_PROC here or similar, instead.
#if defined(VGO_linux)
Int ret;
- struct vki_dirent d;
+ struct vki_dirent64 d;
SysRes f;
f = VG_(open)("/proc/self/fd", VKI_O_RDONLY, 0);
@@ -846,7 +846,7 @@
return;
}
- while ((ret = VG_(getdents)(sr_Res(f), &d, sizeof(d))) != 0) {
+ while ((ret = VG_(getdents64)(sr_Res(f), &d, sizeof(d))) != 0) {
if (ret == -1)
goto out;
Modified: trunk/include/pub_tool_libcfile.h
==============================================================================
--- trunk/include/pub_tool_libcfile.h (original)
+++ trunk/include/pub_tool_libcfile.h Fri Aug 29 14:28:30 2014
@@ -92,7 +92,7 @@
extern SysRes VG_(poll) (struct vki_pollfd *fds, Int nfds, Int timeout);
extern Int VG_(readlink)( const HChar* path, HChar* buf, UInt bufsize );
-extern Int VG_(getdents)( Int fd, struct vki_dirent *dirp, UInt count );
+extern Int VG_(getdents64)( Int fd, struct vki_dirent64 *dirp, UInt count );
extern const HChar* VG_(basename)( const HChar* path );
extern const HChar* VG_(dirname) ( const HChar* path );
Modified: trunk/include/vki/vki-linux.h
==============================================================================
--- trunk/include/vki/vki-linux.h (original)
+++ trunk/include/vki/vki-linux.h Fri Aug 29 14:28:30 2014
@@ -1373,6 +1373,7 @@
// From linux-2.6.8.1/include/linux/dirent.h
//----------------------------------------------------------------------
+/* This is the old compat structure to use with the old dirent syscall. */
struct vki_dirent {
long d_ino;
__vki_kernel_off_t d_off;
@@ -1380,6 +1381,15 @@
char d_name[256]; /* We must not include limits.h! */
};
+/* This is the new structure to use with the dirent64 syscall. */
+struct vki_dirent64 {
+ __vki_u64 d_ino;
+ __vki_s64 d_off;
+ unsigned short d_reclen;
+ unsigned char d_type;
+ char d_name[256]; /* Note we hard code a max file length here. */
+};
+
//----------------------------------------------------------------------
// From linux-2.6.8.1/include/linux/fcntl.h
//----------------------------------------------------------------------
|
|
From: <sv...@va...> - 2014-08-29 11:44:30
|
Author: mjw
Date: Fri Aug 29 11:44:20 2014
New Revision: 14383
Log:
include/vki/vki-scnums-arm64-linux.h use correct __NR_lseek define.
This caused memcheck/tests/linux/proc-auxv.vgtest to fail because
our internal VG(lseek) would return ENOSYS.
Modified:
trunk/include/vki/vki-scnums-arm64-linux.h
Modified: trunk/include/vki/vki-scnums-arm64-linux.h
==============================================================================
--- trunk/include/vki/vki-scnums-arm64-linux.h (original)
+++ trunk/include/vki/vki-scnums-arm64-linux.h Fri Aug 29 11:44:20 2014
@@ -391,7 +391,7 @@
//__SYSCALL(__NR_fstatfs, sys_fstatfs)
//#define __NR_statfs 1056
//__SYSCALL(__NR_statfs, sys_statfs)
-#define __NR_lseek 1057
+//#define __NR_lseek 1057
#define __NR_mmap 1058
//
//#undef __NR_syscalls
@@ -475,7 +475,7 @@
//#define __NR_fstatfs __NR3264_fstatfs
//#define __NR_truncate __NR3264_truncate
//#define __NR_ftruncate __NR3264_ftruncate
-//#define __NR_lseek __NR3264_lseek
+#define __NR_lseek __NR3264_lseek
//#define __NR_sendfile __NR3264_sendfile
//#define __NR_newfstatat __NR3264_fstatat
#define __NR_fstat __NR3264_fstat
|
|
From: <sv...@va...> - 2014-08-29 08:41:53
|
Author: mjw
Date: Fri Aug 29 08:41:45 2014
New Revision: 14382
Log:
Hook up allexec tests for arm64.
Added:
trunk/none/tests/arm64/allexec.c (with props)
Modified:
trunk/none/tests/arm64/Makefile.am
Modified: trunk/none/tests/arm64/Makefile.am
==============================================================================
--- trunk/none/tests/arm64/Makefile.am (original)
+++ trunk/none/tests/arm64/Makefile.am Fri Aug 29 08:41:45 2014
@@ -8,6 +8,7 @@
fp_and_simd.stdout.exp fp_and_simd.stderr.exp fp_and_simd.vgtest
check_PROGRAMS = \
+ allexec \
integer \
fp_and_simd
@@ -15,6 +16,8 @@
AM_CXXFLAGS += @FLAG_M64@
AM_CCASFLAGS += @FLAG_M64@
+allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
+
integer_CFLAGS = $(AM_CFLAGS) -g -O0 -DTEST_BFM=0
fp_and_simd_LDADD = -lm
Added: trunk/none/tests/arm64/allexec.c
==============================================================================
--- trunk/none/tests/arm64/allexec.c (added)
+++ trunk/none/tests/arm64/allexec.c Fri Aug 29 08:41:45 2014
@@ -0,0 +1 @@
+link ../allexec.c
\ No newline at end of file
|
|
From: Rich C. <rc...@wi...> - 2014-08-29 05:09:49
|
valgrind revision: 14381
VEX revision: 2935
C compiler: gcc (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]
GDB: GNU gdb (GDB; openSUSE Factory) 7.6.50.20130731-cvs
Assembler: GNU assembler (GNU Binutils; openSUSE Factory) 2.23.2
C library: GNU C Library (GNU libc) stable release version 2.18 (git )
uname -mrs: Linux 3.11.4-3-desktop x86_64
Vendor version: Welcome to openSUSE 13.1 "Bottle" Beta 1 - Kernel %r (%t).
Nightly build on rodan ( Linux 3.11.4-3-desktop x86_64 )
Started at 2014-08-28 19:22:01 CDT
Ended at 2014-08-29 00:09:36 CDT
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
== 611 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/err_disable3 (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/threadname (stderr)
memcheck/tests/threadname_xml (stderr)
--tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old
+ perl perf/vg_perf --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old perf
-- Running tests in perf ----------------------------------------------
-- bigcode1 --
bigcode1 valgrind-new:0.48s no: 7.8s (16.3x, -----) me:15.0s (31.3x, -----) ca:61.2s (127.6x, -----) he: 8.9s (18.5x, -----) ca:25.6s (53.3x, -----) dr: 8.8s (18.3x, -----) ma: 9.1s (18.9x, -----)
bigcode1 valgrind-old:0.48s no: 7.8s (16.2x, 0.1%) me:15.0s (31.3x, 0.0%) ca:61.2s (127.6x, 0.0%) he: 8.9s (18.5x, 0.0%) ca:25.6s (53.3x, -0.0%) dr: 8.8s (18.3x, 0.0%) ma: 9.1s (18.9x, -0.1%)
-- bigcode2 --
bigcode2 valgrind-new:0.48s no:18.7s (38.9x, -----) me:38.5s (80.2x, -----) ca:105.2s (219.2x, -----) he:22.3s (46.4x, -----) ca:40.9s (85.3x, -----) dr:21.4s (44.5x, -----) ma:21.4s (44.5x, -----)
bigcode2 valgrind-old:0.48s no:18.7s (38.9x, -0.1%) me:38.5s (80.1x, 0.1%) ca:105.2s (219.1x, 0.0%) he:22.2s (46.4x, 0.1%) ca:41.0s (85.3x, -0.0%) dr:21.4s (44.5x, 0.0%) ma:21.4s (44.5x, 0.0%)
-- bz2 --
bz2 valgrind-new:2.32s no:10.3s ( 4.5x, -----) me:27.3s (11.8x, -----) ca:73.8s (31.8x, -----) he:47.3s (20.4x, -----) ca:77.3s (33.3x, -----) dr:56.5s (24.4x, -----) ma: 9.7s ( 4.2x, -----)
bz2 valgrind-old:2.32s no:10.3s ( 4.5x, 0.0%) me:27.3s (11.8x, 0.0%) ca:73.9s (31.8x, -0.1%) he:47.4s (20.4x, -0.3%) ca:77.3s (33.3x, 0.0%) dr:56.5s (24.4x, 0.0%) ma: 9.7s ( 4.2x, 0.0%)
-- fbench --
fbench valgrind-new:1.44s no: 5.4s ( 3.8x, -----) me:17.3s (12.0x, -----) ca:27.2s (18.9x, -----) he:12.7s ( 8.8x, -----) ca:21.6s (15.0x, -----) dr:12.9s ( 9.0x, -----) ma: 5.6s ( 3.9x, -----)
fbench valgrind-old:1.44s no: 5.4s ( 3.8x, 0.0%) me:17.3s (12.0x, -0.1%) ca:27.2s (18.9x, -0.0%) he:12.7s ( 8.8x, -0.1%) ca:21.6s (15.0x, 0.0%) dr:12.9s ( 9.0x, -0.1%) ma: 5.6s ( 3.9x, -0.2%)
-- ffbench --
ffbench valgrind-new:1.01s no: 3.7s ( 3.7x, -----) me:12.1s (12.0x, -----) ca: 8.2s ( 8.1x, -----) he:21.3s (21.1x, -----) ca:27.7s (27.4x, -----) dr:17.2s (17.0x, -----) ma: 3.7s ( 3.6x, -----)
ffbench valgrind-old:1.01s no: 3.7s ( 3.7x, 0.0%) me:12.1s (12.0x, 0.0%) ca: 8.2s ( 8.1x, 0.0%) he:21.3s (21.1x, 0.0%) ca:27.6s (27.4x, 0.0%) dr:17.2s (17.0x, 0.0%) ma: 3.7s ( 3.7x, -0.3%)
-- heap --
heap valgrind-new:0.42s no: 3.3s ( 7.9x, -----) me:22.0s (52.4x, -----) ca:31.2s (74.4x, -----) he:30.8s (73.4x, -----) ca:22.7s (54.1x, -----) dr:20.0s (47.6x, -----) ma:21.8s (52.0x, -----)
heap valgrind-old:0.42s no: 3.3s ( 7.9x, 0.0%) me:22.0s (52.3x, 0.0%) ca:31.2s (74.3x, 0.1%) he:30.8s (73.4x, 0.0%) ca:22.7s (54.1x, 0.1%) dr:20.0s (47.6x, 0.1%) ma:21.9s (52.0x, -0.0%)
-- heap_pdb4 --
heap_pdb4 valgrind-new:0.55s no: 3.6s ( 6.6x, -----) me:41.1s (74.8x, -----) ca:34.2s (62.2x, -----) he:35.9s (65.2x, -----) ca:24.8s (45.1x, -----) dr:22.4s (40.6x, -----) ma:23.4s (42.6x, -----)
heap_pdb4 valgrind-old:0.55s no: 3.6s ( 6.6x, -0.6%) me:41.1s (74.8x, 0.0%) ca:34.2s (62.1x, 0.1%) he:35.9s (65.3x, -0.1%) ca:24.8s (45.0x, 0.2%) dr:22.4s (40.6x, 0.0%) ma:23.4s (42.6x, 0.0%)
-- many-loss-records --
many-loss-records valgrind-new:0.05s no: 1.2s (25.0x, -----) me: 5.9s (117.4x, -----) ca: 5.1s (102.4x, -----) he: 5.3s (105.6x, -----) ca: 4.1s (82.0x, -----) dr: 4.7s (93.8x, -----) ma: 4.6s (92.4x, -----)
many-loss-records valgrind-old:0.05s no: 1.3s (25.2x, -0.8%) me: 5.9s (117.4x, 0.0%) ca: 5.1s (102.4x, 0.0%) he: 5.3s (105.6x, 0.0%) ca: 4.1s (82.0x, 0.0%) dr: 4.7s (93.8x, 0.0%) ma: 4.6s (92.4x, 0.0%)
-- many-xpts --
many-xpts valgrind-new:0.15s no: 1.5s (10.1x, -----) me: 7.0s (46.5x, -----) ca:13.0s (86.7x, -----) he: 9.7s (64.6x, -----) ca: 5.8s (39.0x, -----) dr: 6.1s (40.9x, -----) ma: 7.3s (48.7x, -----)
many-xpts valgrind-old:0.15s no: 1.5s (10.1x, 0.0%) me: 7.0s (46.6x, -0.1%) ca:13.0s (86.7x, 0.0%) he: 9.7s (64.7x, -0.1%) ca: 5.8s (39.0x, 0.0%) dr: 6.1s (40.9x, 0.0%) ma: 7.3s (48.7x, 0.1%)
-- sarp --
sarp valgrind-new:0.10s no: 1.5s (14.7x, -----) me: 9.5s (94.7x, -----) ca: 8.1s (81.3x, -----) he:31.0s (309.6x, -----) ca: 5.6s (56.0x, -----) dr: 4.1s (41.1x, -----) ma: 1.5s (15.1x, -----)
sarp valgrind-old:0.10s no: 1.5s (14.7x, 0.0%) me: 9.5s (94.7x, 0.0%) ca: 8.1s (81.4x, -0.1%) he:31.0s (309.8x, -0.1%) ca: 5.6s (56.1x, -0.2%) dr: 4.1s (41.0x, 0.2%) ma: 1.5s (15.2x, -0.7%)
-- tinycc --
tinycc valgrind-new:0.76s no: 7.6s (10.0x, -----) me:37.8s (49.7x, -----) ca:53.9s (70.9x, -----) he:46.5s (61.2x, -----) ca:45.0s (59.3x, -----) dr:38.9s (51.2x, -----) ma:12.0s (15.8x, -----)
tinycc valgrind-old:0.76s no: 7.6s (10.0x, 0.0%) me:37.8s (49.7x, -0.0%) ca:54.1s (71.2x, -0.5%) he:46.5s (61.2x, 0.0%) ca:45.0s (59.2x, 0.0%) dr:38.9s (51.2x, 0.0%) ma:12.0s (15.8x, 0.1%)
-- Finished tests in perf ----------------------------------------------
== 11 programs, 154 timings =================
real 165m12.775s
user 163m9.139s
sys 1m49.041s
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-08-28 20:24:22.844116071 -0500
+++ err_disable3.stderr.out 2014-08-28 20:43:30.802388692 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-new/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-08-28 20:24:18.577070246 -0500
+++ err_disable4.stderr.out 2014-08-28 20:43:35.478438587 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-new/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-08-28 20:24:18.601070504 -0500
+++ threadname.stderr.out 2014-08-28 20:49:55.615499827 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-new/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-08-28 20:24:15.918041691 -0500
+++ threadname_xml.stderr.out 2014-08-28 20:49:57.727522418 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-08-28 19:22:23.328037897 -0500
+++ err_disable3.stderr.out 2014-08-28 19:42:56.630353940 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-old/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-08-28 19:22:34.221155216 -0500
+++ err_disable4.stderr.out 2014-08-28 19:43:01.341404877 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-old/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-08-28 19:22:34.305156121 -0500
+++ threadname.stderr.out 2014-08-28 19:49:21.051513187 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-old/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-08-28 19:22:23.325037865 -0500
+++ threadname_xml.stderr.out 2014-08-28 19:49:23.191536357 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
|
|
From: Christian B. <bor...@de...> - 2014-08-29 04:08:43
|
valgrind revision: 14381 VEX revision: 2935 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.5.1-0.7.29) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.23.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.101-0.31-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP3 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP3 gcc 4.3.4 on z196 (s390x) ) Started at 2014-08-29 03:45:01 CEST Ended at 2014-08-29 06:08:29 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 661 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/tc20_verifywrap (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 4.7s (20.4x, -----) me: 6.7s (29.1x, -----) ca:26.5s (115.2x, -----) he: 5.6s (24.2x, -----) ca: 9.1s (39.6x, -----) dr: 4.8s (21.0x, -----) ma: 4.7s (20.3x, -----) bigcode1 valgrind-old:0.23s no: 4.7s (20.4x, 0.0%) me: 6.8s (29.3x, -0.7%) ca:26.5s (115.0x, 0.1%) he: 5.6s (24.3x, -0.4%) ca: 9.1s (39.7x, -0.1%) dr: 4.8s (20.7x, 1.2%) ma: 4.7s (20.4x, -0.2%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.6s (31.8x, -----) me:13.7s (56.9x, -----) ca:39.7s (165.5x, -----) he:10.6s (44.0x, -----) ca:14.2s (59.1x, -----) dr: 8.9s (37.0x, -----) ma: 8.1s (33.7x, -----) bigcode2 valgrind-old:0.24s no: 7.7s (32.0x, -0.7%) me:13.7s (57.0x, -0.1%) ca:39.8s (165.7x, -0.1%) he:10.6s (44.0x, -0.1%) ca:14.2s (59.1x, 0.0%) dr: 8.9s (37.1x, -0.2%) ma: 8.1s (33.7x, -0.1%) -- bz2 -- bz2 valgrind-new:0.70s no: 6.5s ( 9.2x, -----) me:12.3s (17.6x, -----) ca:30.7s (43.9x, -----) he:19.5s (27.9x, -----) ca:34.0s (48.6x, -----) dr:29.8s (42.6x, -----) ma: 3.8s ( 5.4x, -----) bz2 valgrind-old:0.70s no: 6.5s ( 9.2x, 0.0%) me:12.3s (17.6x, 0.1%) ca:30.7s (43.9x, -0.0%) he:19.6s (27.9x, -0.1%) ca:34.0s (48.6x, 0.0%) dr:29.9s (42.7x, -0.1%) ma: 3.8s ( 5.4x, 0.0%) -- fbench -- fbench valgrind-new:0.40s no: 1.6s ( 4.0x, -----) me: 4.3s (10.6x, -----) ca: 9.3s (23.2x, -----) he: 6.2s (15.6x, -----) ca: 7.2s (18.0x, -----) dr: 5.5s (13.8x, -----) ma: 1.6s ( 4.1x, -----) fbench valgrind-old:0.40s no: 1.6s ( 4.0x, 0.6%) me: 4.3s (10.6x, 0.0%) ca: 9.3s (23.2x, 0.0%) he: 6.2s (15.6x, 0.0%) ca: 7.2s (18.0x, 0.0%) dr: 5.5s (13.8x, 0.0%) ma: 1.6s ( 4.1x, 0.0%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.2s ( 5.8x, -----) me: 3.0s (14.8x, -----) ca: 3.1s (15.3x, -----) he:44.1s (220.5x, -----) ca: 9.5s (47.4x, -----) dr: 7.0s (35.2x, -----) ma: 1.0s ( 4.8x, -----) ffbench valgrind-old:0.20s no: 1.2s ( 5.8x, 0.0%) me: 2.9s (14.7x, 1.0%) ca: 3.0s (15.0x, 2.0%) he:44.1s (220.4x, 0.0%) ca: 9.5s (47.4x, -0.1%) dr: 7.0s (35.2x, 0.0%) ma: 0.9s ( 4.7x, 1.0%) -- heap -- heap valgrind-new:0.23s no: 2.2s ( 9.7x, -----) me: 8.7s (37.9x, -----) ca:13.2s (57.3x, -----) he:12.7s (55.2x, -----) ca:11.2s (48.8x, -----) dr: 7.5s (32.6x, -----) ma: 8.0s (34.9x, -----) heap valgrind-old:0.23s no: 2.2s ( 9.8x, -0.4%) me: 8.7s (37.9x, 0.1%) ca:13.2s (57.5x, -0.2%) he:12.7s (55.3x, -0.1%) ca:11.3s (49.0x, -0.4%) dr: 7.5s (32.6x, 0.0%) ma: 8.0s (34.7x, 0.6%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.5s (11.2x, -----) me:12.9s (58.8x, -----) ca:14.3s (65.0x, -----) he:14.0s (63.8x, -----) ca:12.3s (55.7x, -----) dr: 8.5s (38.5x, -----) ma: 8.2s (37.2x, -----) heap_pdb4 valgrind-old:0.22s no: 2.5s (11.2x, -0.4%) me:13.0s (59.0x, -0.3%) ca:14.3s (65.0x, 0.0%) he:14.1s (63.9x, -0.1%) ca:12.3s (55.8x, -0.1%) dr: 8.5s (38.8x, -0.8%) ma: 8.2s (37.2x, 0.1%) -- many-loss-records -- many-loss-records valgrind-new:0.02s no: 0.5s (26.0x, -----) me: 2.1s (105.0x, -----) ca: 1.9s (96.5x, -----) he: 2.1s (106.5x, -----) ca: 1.9s (95.0x, -----) dr: 1.7s (85.0x, -----) ma: 1.7s (84.5x, -----) many-loss-records valgrind-old:0.02s no: 0.5s (26.0x, 0.0%) me: 2.1s (105.0x, 0.0%) ca: 1.9s (97.0x, -0.5%) he: 2.1s (106.5x, 0.0%) ca: 1.9s (95.0x, 0.0%) dr: 1.7s (85.0x, 0.0%) ma: 1.7s (84.5x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.7s ( 9.6x, -----) me: 3.2s (45.4x, -----) ca:373.3s (5333.3x, -----) he: 6.5s (92.6x, -----) ca: 2.8s (39.4x, -----) dr: 2.5s (35.3x, -----) ma: 2.6s (37.6x, -----) many-xpts valgrind-old:0.07s no: 0.7s ( 9.6x, 0.0%) me: 3.2s (45.4x, 0.0%) ca:365.9s (5226.6x, 2.0%) he: 6.5s (92.6x, 0.0%) ca: 2.8s (39.4x, -0.0%) dr: 2.5s (35.3x, 0.0%) ma: 2.6s (37.7x, -0.4%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (19.7x, -----) me: 3.9s (130.0x, -----) ca: 3.2s (105.3x, -----) he:16.3s (544.7x, -----) ca: 2.0s (68.0x, -----) dr: 1.3s (44.7x, -----) ma: 0.5s (16.3x, -----) sarp valgrind-old:0.03s no: 0.6s (19.3x, 1.7%) me: 3.9s (130.0x, 0.0%) ca: 3.2s (107.0x, -1.6%) he:16.9s (563.3x, -3.4%) ca: 2.0s (68.0x, 0.0%) dr: 1.3s (44.7x, 0.0%) ma: 0.5s (16.3x, 0.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 3.0s (13.7x, -----) me:14.6s (66.5x, -----) ca:30.1s (136.8x, -----) he:27.4s (124.5x, -----) ca:21.0s (95.3x, -----) dr:20.7s (93.9x, -----) ma: 3.9s (17.7x, -----) tinycc valgrind-old:0.22s no: 3.0s (13.7x, 0.0%) me:14.7s (66.7x, -0.2%) ca:30.1s (136.9x, -0.1%) he:27.5s (124.9x, -0.3%) ca:21.0s (95.3x, 0.0%) dr:20.6s (93.8x, 0.1%) ma: 3.9s (17.7x, 0.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 110m40.822s user 109m55.587s sys 0m31.091s |
|
From: Tom H. <to...@co...> - 2014-08-29 03:27:44
|
valgrind revision: 14381 VEX revision: 2935 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.1-48.fc15) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2014-08-29 03:12:27 BST Ended at 2014-08-29 04:27:30 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 696 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.11s no: 1.6s (14.6x, -----) me: 3.2s (28.8x, -----) ca:14.4s (131.0x, -----) he: 1.9s (17.1x, -----) ca: 3.8s (34.5x, -----) dr: 1.9s (16.9x, -----) ma: 1.9s (17.5x, -----) bigcode1 valgrind-old:0.11s no: 1.6s (15.0x, -2.5%) me: 3.2s (28.7x, 0.3%) ca:14.3s (129.8x, 0.9%) he: 1.9s (17.4x, -1.6%) ca: 3.8s (34.4x, 0.5%) dr: 1.9s (17.0x, -0.5%) ma: 1.9s (17.5x, -0.5%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 3.9s (35.4x, -----) me: 8.2s (74.8x, -----) ca:25.0s (227.4x, -----) he: 4.8s (43.5x, -----) ca: 7.1s (64.5x, -----) dr: 4.5s (41.0x, -----) ma: 4.5s (40.5x, -----) bigcode2 valgrind-old:0.11s no: 4.0s (36.1x, -2.1%) me: 8.2s (75.0x, -0.2%) ca:25.5s (231.6x, -1.9%) he: 4.9s (44.4x, -2.1%) ca: 7.1s (64.9x, -0.7%) dr: 4.5s (41.0x, 0.0%) ma: 4.5s (41.1x, -1.3%) -- bz2 -- bz2 valgrind-new:0.52s no: 2.1s ( 4.0x, -----) me: 6.0s (11.5x, -----) ca:13.8s (26.5x, -----) he: 9.1s (17.4x, -----) ca:11.7s (22.4x, -----) dr:10.9s (21.0x, -----) ma: 2.1s ( 4.0x, -----) bz2 valgrind-old:0.52s no: 2.1s ( 4.0x, 1.9%) me: 6.0s (11.6x, -0.3%) ca:13.6s (26.2x, 1.2%) he: 8.9s (17.2x, 1.7%) ca:11.5s (22.2x, 1.3%) dr:10.8s (20.9x, 0.5%) ma: 2.1s ( 4.0x, -0.5%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.5x, -----) me: 3.5s (15.8x, -----) ca: 5.5s (24.8x, -----) he: 2.6s (11.7x, -----) ca: 3.1s (14.1x, -----) dr: 2.4s (11.0x, -----) ma: 1.0s ( 4.6x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.5x, -1.0%) me: 3.5s (15.8x, -0.3%) ca: 5.4s (24.7x, 0.4%) he: 2.6s (11.7x, 0.0%) ca: 3.2s (14.5x, -2.6%) dr: 2.4s (11.0x, -0.4%) ma: 1.0s ( 4.6x, 0.0%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.0s ( 4.8x, -----) me: 2.7s (13.3x, -----) ca: 1.8s ( 9.2x, -----) he: 5.5s (27.4x, -----) ca: 4.1s (20.4x, -----) dr: 3.2s (15.8x, -----) ma: 0.8s ( 4.2x, -----) ffbench valgrind-old:0.20s no: 0.9s ( 4.5x, 6.2%) me: 2.7s (13.3x, 0.0%) ca: 1.8s ( 9.0x, 1.6%) he: 5.5s (27.7x, -1.1%) ca: 4.1s (20.4x, 0.0%) dr: 3.1s (15.7x, 0.3%) ma: 0.8s ( 4.2x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 7.4x, -----) me: 4.8s (60.5x, -----) ca: 6.2s (77.0x, -----) he: 6.6s (82.8x, -----) ca: 3.3s (41.0x, -----) dr: 4.2s (52.1x, -----) ma: 4.5s (56.6x, -----) heap valgrind-old:0.08s no: 0.6s ( 7.4x, 0.0%) me: 4.8s (60.0x, 0.8%) ca: 6.2s (77.0x, 0.0%) he: 6.6s (82.9x, -0.2%) ca: 3.2s (40.2x, 1.8%) dr: 4.2s (51.9x, 0.5%) ma: 4.6s (57.1x, -0.9%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 6.8x, -----) me: 8.2s (82.5x, -----) ca: 6.8s (68.3x, -----) he: 7.5s (74.5x, -----) ca: 3.6s (36.1x, -----) dr: 4.7s (47.4x, -----) ma: 4.8s (48.0x, -----) heap_pdb4 valgrind-old:0.10s no: 0.7s ( 7.0x, -2.9%) me: 8.1s (80.8x, 2.1%) ca: 6.8s (68.5x, -0.3%) he: 7.4s (74.4x, 0.1%) ca: 3.6s (36.3x, -0.6%) dr: 4.8s (47.6x, -0.4%) ma: 4.8s (48.0x, 0.0%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (26.0x, -----) me: 1.3s (127.0x, -----) ca: 1.1s (106.0x, -----) he: 1.1s (108.0x, -----) ca: 0.7s (71.0x, -----) dr: 1.0s (96.0x, -----) ma: 1.0s (100.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, 0.0%) me: 1.3s (128.0x, -0.8%) ca: 1.1s (106.0x, 0.0%) he: 1.1s (107.0x, 0.9%) ca: 0.7s (69.0x, 2.8%) dr: 1.0s (96.0x, 0.0%) ma: 1.0s (100.0x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.04s no: 0.3s ( 7.8x, -----) me: 1.8s (46.0x, -----) ca: 2.8s (69.5x, -----) he: 2.1s (52.5x, -----) ca: 1.0s (25.0x, -----) dr: 1.4s (35.0x, -----) ma: 1.5s (36.5x, -----) many-xpts valgrind-old:0.04s no: 0.3s ( 7.8x, 0.0%) me: 1.9s (46.2x, -0.5%) ca: 2.8s (69.2x, 0.4%) he: 2.1s (52.5x, 0.0%) ca: 1.0s (24.8x, 1.0%) dr: 1.4s (35.0x, 0.0%) ma: 1.4s (36.2x, 0.7%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.0x, -----) me: 2.2s (109.5x, -----) ca: 1.8s (91.0x, -----) he: 6.1s (306.5x, -----) ca: 0.9s (47.5x, -----) dr: 0.9s (45.5x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (14.0x, 0.0%) me: 2.2s (110.5x, -0.9%) ca: 1.8s (89.5x, 1.6%) he: 6.2s (312.5x, -2.0%) ca: 0.9s (47.5x, 0.0%) dr: 0.9s (44.5x, 2.2%) ma: 0.3s (15.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.17s no: 1.4s ( 8.5x, -----) me: 9.2s (54.2x, -----) ca:11.3s (66.4x, -----) he: 9.8s (57.6x, -----) ca: 8.3s (49.0x, -----) dr: 8.2s (48.0x, -----) ma: 2.5s (14.5x, -----) tinycc valgrind-old:0.17s no: 1.4s ( 8.4x, 0.7%) me: 9.2s (54.4x, -0.2%) ca:11.2s (66.2x, 0.4%) he: 9.9s (58.3x, -1.2%) ca: 8.3s (48.8x, 0.4%) dr: 8.1s (47.9x, 0.2%) ma: 2.5s (14.5x, 0.4%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 34m23.604s user 33m26.739s sys 0m21.050s |
|
From: Tom H. <to...@co...> - 2014-08-29 03:15:13
|
valgrind revision: 14381 VEX revision: 2935 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.50.20110722-16.fc16) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2014-08-29 03:01:55 BST Ended at 2014-08-29 04:14:54 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 696 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.11s no: 1.7s (15.1x, -----) me: 3.2s (29.4x, -----) ca:14.5s (131.6x, -----) he: 1.9s (17.4x, -----) ca: 3.8s (34.7x, -----) dr: 1.9s (17.0x, -----) ma: 2.0s (17.8x, -----) bigcode1 valgrind-old:0.11s no: 1.7s (15.1x, 0.0%) me: 3.3s (30.3x, -3.1%) ca:14.7s (133.5x, -1.5%) he: 1.9s (17.5x, -1.0%) ca: 3.9s (35.0x, -0.8%) dr: 1.9s (17.3x, -1.6%) ma: 1.9s (17.6x, 1.0%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 3.9s (35.6x, -----) me: 8.3s (75.9x, -----) ca:26.2s (238.0x, -----) he: 4.8s (43.8x, -----) ca: 7.2s (65.1x, -----) dr: 4.5s (41.3x, -----) ma: 4.5s (41.2x, -----) bigcode2 valgrind-old:0.11s no: 3.9s (35.6x, 0.0%) me: 8.3s (75.6x, 0.4%) ca:26.3s (239.4x, -0.6%) he: 4.8s (43.5x, 0.8%) ca: 7.2s (65.1x, 0.0%) dr: 4.5s (41.4x, -0.2%) ma: 4.5s (41.1x, 0.2%) -- bz2 -- bz2 valgrind-new:0.52s no: 2.1s ( 4.1x, -----) me: 6.2s (11.9x, -----) ca:14.0s (26.9x, -----) he: 8.8s (17.0x, -----) ca:11.7s (22.4x, -----) dr:11.3s (21.8x, -----) ma: 2.1s ( 4.0x, -----) bz2 valgrind-old:0.52s no: 2.1s ( 4.0x, 1.4%) me: 6.2s (11.9x, -0.2%) ca:14.0s (26.9x, 0.1%) he: 8.8s (16.9x, 0.3%) ca:11.7s (22.4x, 0.0%) dr:11.3s (21.8x, 0.1%) ma: 2.1s ( 4.0x, 0.5%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.6x, -----) me: 3.6s (16.2x, -----) ca: 5.6s (25.4x, -----) he: 2.6s (11.7x, -----) ca: 3.2s (14.4x, -----) dr: 2.5s (11.4x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.7x, -1.0%) me: 3.6s (16.2x, 0.0%) ca: 5.6s (25.3x, 0.4%) he: 2.6s (12.0x, -2.3%) ca: 3.2s (14.4x, 0.0%) dr: 2.5s (11.5x, -0.4%) ma: 1.1s ( 4.8x, 0.0%) -- ffbench -- ffbench valgrind-new:0.21s no: 0.9s ( 4.5x, -----) me: 2.8s (13.2x, -----) ca: 1.9s ( 8.9x, -----) he: 6.9s (32.9x, -----) ca: 4.3s (20.3x, -----) dr: 3.2s (15.5x, -----) ma: 0.9s ( 4.2x, -----) ffbench valgrind-old:0.21s no: 0.9s ( 4.5x, 0.0%) me: 2.7s (13.0x, 1.1%) ca: 1.9s ( 8.9x, 0.5%) he: 5.6s (26.7x, 18.8%) ca: 4.3s (20.5x, -0.9%) dr: 3.3s (15.6x, -0.9%) ma: 0.9s ( 4.2x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 8.0x, -----) me: 4.9s (61.0x, -----) ca: 6.7s (83.5x, -----) he: 6.7s (83.1x, -----) ca: 3.3s (41.8x, -----) dr: 4.2s (52.6x, -----) ma: 4.7s (58.5x, -----) heap valgrind-old:0.08s no: 0.7s ( 8.1x, -1.6%) me: 4.9s (61.1x, -0.2%) ca: 6.6s (82.6x, 1.0%) he: 6.6s (82.8x, 0.5%) ca: 3.4s (42.2x, -1.2%) dr: 4.2s (52.1x, 1.0%) ma: 4.7s (58.4x, 0.2%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.7s ( 6.4x, -----) me: 8.3s (75.4x, -----) ca: 7.3s (66.3x, -----) he: 7.7s (69.8x, -----) ca: 3.8s (34.1x, -----) dr: 4.7s (42.9x, -----) ma: 4.8s (43.7x, -----) heap_pdb4 valgrind-old:0.11s no: 0.7s ( 6.3x, 1.4%) me: 8.1s (73.8x, 2.1%) ca: 7.2s (65.5x, 1.1%) he: 7.6s (68.9x, 1.3%) ca: 3.7s (33.4x, 2.1%) dr: 4.7s (42.3x, 1.5%) ma: 4.7s (43.1x, 1.5%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (26.0x, -----) me: 1.2s (123.0x, -----) ca: 1.1s (106.0x, -----) he: 1.0s (103.0x, -----) ca: 0.7s (67.0x, -----) dr: 0.9s (89.0x, -----) ma: 1.0s (96.0x, -----) many-loss-records valgrind-old:0.01s no: 0.2s (25.0x, 3.8%) me: 1.2s (120.0x, 2.4%) ca: 1.0s (104.0x, 1.9%) he: 1.0s (103.0x, 0.0%) ca: 0.7s (66.0x, 1.5%) dr: 0.9s (90.0x, -1.1%) ma: 0.9s (95.0x, 1.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.3x, -----) me: 1.8s (58.3x, -----) ca: 2.7s (91.0x, -----) he: 2.0s (67.0x, -----) ca: 1.0s (32.0x, -----) dr: 1.3s (44.3x, -----) ma: 1.4s (47.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.0x, 3.2%) me: 1.7s (57.7x, 1.1%) ca: 2.7s (91.0x, 0.0%) he: 2.0s (67.3x, -0.5%) ca: 0.9s (31.7x, 1.0%) dr: 1.3s (44.3x, 0.0%) ma: 1.4s (46.3x, 1.4%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (13.5x, -----) me: 2.1s (104.5x, -----) ca: 1.7s (84.5x, -----) he: 6.4s (322.0x, -----) ca: 0.9s (45.5x, -----) dr: 0.9s (43.0x, -----) ma: 0.3s (14.0x, -----) sarp valgrind-old:0.02s no: 0.3s (13.5x, 0.0%) me: 2.1s (103.5x, 1.0%) ca: 1.7s (85.0x, -0.6%) he: 6.5s (323.0x, -0.3%) ca: 0.9s (46.0x, -1.1%) dr: 0.9s (43.0x, 0.0%) ma: 0.3s (14.5x, -3.6%) -- tinycc -- tinycc valgrind-new:0.15s no: 1.4s ( 9.0x, -----) me: 8.8s (59.0x, -----) ca:10.7s (71.5x, -----) he: 9.3s (61.9x, -----) ca: 7.8s (52.3x, -----) dr: 7.6s (50.9x, -----) ma: 2.4s (15.8x, -----) tinycc valgrind-old:0.15s no: 1.4s ( 9.1x, -1.5%) me: 8.9s (59.2x, -0.3%) ca:10.7s (71.3x, 0.3%) he: 9.2s (61.3x, 1.1%) ca: 8.0s (53.3x, -1.9%) dr: 8.2s (54.5x, -6.9%) ma: 2.4s (15.8x, 0.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 34m47.990s user 33m43.860s sys 0m21.845s |
|
From: Tom H. <to...@co...> - 2014-08-29 03:04:45
|
valgrind revision: 14381 VEX revision: 2935 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) GDB: GNU gdb (GDB) Fedora (7.4.50.20120120-54.fc17) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2014-08-29 02:51:10 BST Ended at 2014-08-29 04:04:28 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 == 696 tests, 4 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (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 == 696 tests, 5 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-08-29 03:09:54.415632272 +0100 --- new.short 2014-08-29 03:29:30.809106669 +0100 *************** *** 8,10 **** ! == 696 tests, 5 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) --- 8,10 ---- ! == 696 tests, 4 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) *************** *** 12,14 **** gdbserver_tests/mcmain_pic (stderr) - none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) --- 12,13 ---- --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.10s no: 1.6s (16.2x, -----) me: 3.2s (32.3x, -----) ca:13.2s (131.7x, -----) he: 1.9s (19.0x, -----) ca: 3.7s (37.2x, -----) dr: 1.9s (18.6x, -----) ma: 1.9s (19.4x, -----) bigcode1 valgrind-old:0.10s no: 1.6s (16.4x, -1.2%) me: 3.3s (32.7x, -1.2%) ca:13.1s (131.3x, 0.3%) he: 1.9s (19.1x, -0.5%) ca: 3.7s (37.1x, 0.3%) dr: 1.9s (18.7x, -0.5%) ma: 2.0s (19.7x, -1.5%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 3.9s (35.2x, -----) me: 8.3s (75.3x, -----) ca:27.0s (245.4x, -----) he: 4.9s (44.2x, -----) ca: 7.2s (65.3x, -----) dr: 4.5s (41.2x, -----) ma: 4.5s (41.2x, -----) bigcode2 valgrind-old:0.11s no: 4.0s (35.9x, -2.1%) me: 8.4s (76.5x, -1.6%) ca:26.7s (243.1x, 0.9%) he: 4.7s (43.1x, 2.5%) ca: 7.1s (64.2x, 1.7%) dr: 4.5s (41.0x, 0.4%) ma: 4.5s (41.0x, 0.4%) -- bz2 -- bz2 valgrind-new:0.52s no: 2.1s ( 4.1x, -----) me: 6.3s (12.0x, -----) ca:12.6s (24.3x, -----) he: 9.0s (17.3x, -----) ca:10.8s (20.7x, -----) dr:11.5s (22.1x, -----) ma: 2.1s ( 4.1x, -----) bz2 valgrind-old:0.52s no: 2.1s ( 4.1x, 0.0%) me: 6.4s (12.4x, -2.7%) ca:12.8s (24.7x, -1.7%) he: 9.1s (17.5x, -1.2%) ca:10.8s (20.8x, -0.3%) dr:11.4s (21.9x, 0.8%) ma: 2.1s ( 4.0x, 2.3%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.7x, -----) me: 3.5s (15.7x, -----) ca: 5.5s (25.0x, -----) he: 2.5s (11.4x, -----) ca: 3.0s (13.5x, -----) dr: 2.5s (11.5x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.7x, 0.0%) me: 3.4s (15.5x, 0.9%) ca: 5.5s (24.9x, 0.5%) he: 2.5s (11.5x, -0.4%) ca: 3.0s (13.5x, 0.3%) dr: 2.5s (11.5x, 0.0%) ma: 1.1s ( 4.8x, 0.0%) -- ffbench -- ffbench valgrind-new:0.23s no: 0.9s ( 4.1x, -----) me: 2.8s (12.2x, -----) ca: 1.9s ( 8.0x, -----) he: 6.5s (28.4x, -----) ca: 4.0s (17.5x, -----) dr: 3.3s (14.4x, -----) ma: 0.9s ( 3.9x, -----) ffbench valgrind-old:0.23s no: 0.9s ( 4.1x, 0.0%) me: 2.8s (12.2x, 0.0%) ca: 1.8s ( 8.0x, 1.1%) he: 6.5s (28.5x, -0.3%) ca: 3.9s (17.1x, 2.0%) dr: 3.2s (14.1x, 2.1%) ma: 0.9s ( 3.9x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 7.9x, -----) me: 5.3s (65.8x, -----) ca: 6.2s (77.0x, -----) he: 6.7s (83.4x, -----) ca: 3.1s (38.2x, -----) dr: 4.2s (53.1x, -----) ma: 4.8s (59.6x, -----) heap valgrind-old:0.08s no: 0.6s ( 7.9x, 0.0%) me: 5.3s (65.8x, 0.0%) ca: 6.1s (76.6x, 0.5%) he: 6.6s (82.9x, 0.6%) ca: 3.1s (38.6x, -1.0%) dr: 4.3s (53.2x, -0.2%) ma: 4.8s (59.5x, 0.2%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.7s ( 6.2x, -----) me: 9.0s (82.1x, -----) ca: 6.7s (60.7x, -----) he: 7.8s (70.5x, -----) ca: 3.4s (30.8x, -----) dr: 4.8s (43.3x, -----) ma: 5.0s (45.7x, -----) heap_pdb4 valgrind-old:0.11s no: 0.7s ( 6.3x, -1.5%) me: 9.0s (81.7x, 0.4%) ca: 6.7s (60.7x, 0.0%) he: 7.8s (70.6x, -0.1%) ca: 3.4s (30.8x, 0.0%) dr: 4.7s (43.1x, 0.4%) ma: 5.0s (45.8x, -0.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (26.0x, -----) me: 1.3s (130.0x, -----) ca: 1.0s (100.0x, -----) he: 1.1s (110.0x, -----) ca: 0.6s (63.0x, -----) dr: 1.0s (97.0x, -----) ma: 1.0s (101.0x, -----) many-loss-records valgrind-old:0.01s no: 0.2s (25.0x, 3.8%) me: 1.3s (129.0x, 0.8%) ca: 1.0s (101.0x, -1.0%) he: 1.1s (109.0x, 0.9%) ca: 0.6s (63.0x, 0.0%) dr: 1.0s (97.0x, 0.0%) ma: 1.0s (100.0x, 1.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.3x, -----) me: 1.7s (58.0x, -----) ca: 2.6s (86.0x, -----) he: 2.2s (73.7x, -----) ca: 0.9s (29.7x, -----) dr: 1.3s (44.0x, -----) ma: 1.5s (50.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.3x, 0.0%) me: 1.7s (58.0x, 0.0%) ca: 2.6s (86.0x, 0.0%) he: 2.2s (74.0x, -0.5%) ca: 0.9s (30.3x, -2.2%) dr: 1.3s (44.7x, -1.5%) ma: 1.5s (50.7x, -1.3%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.0x, -----) me: 2.0s (102.0x, -----) ca: 1.7s (85.5x, -----) he: 7.0s (349.0x, -----) ca: 0.8s (42.5x, -----) dr: 0.8s (41.5x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (13.5x, 3.6%) me: 2.0s (102.0x, 0.0%) ca: 1.7s (86.0x, -0.6%) he: 7.0s (349.5x, -0.1%) ca: 0.8s (42.5x, 0.0%) dr: 0.8s (41.5x, 0.0%) ma: 0.3s (15.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.4s ( 8.4x, -----) me: 8.5s (53.0x, -----) ca:10.7s (67.0x, -----) he:10.0s (62.5x, -----) ca: 7.5s (46.6x, -----) dr: 7.4s (46.3x, -----) ma: 2.4s (15.2x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.4x, 0.0%) me: 8.5s (53.2x, -0.5%) ca:10.7s (66.6x, 0.7%) he:10.0s (62.3x, 0.4%) ca: 7.5s (46.7x, -0.3%) dr: 7.4s (46.2x, 0.3%) ma: 2.4s (14.7x, 3.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 34m57.348s user 33m27.388s sys 0m22.114s |
|
From: Tom H. <to...@co...> - 2014-08-29 02:54:45
|
valgrind revision: 14381 VEX revision: 2935 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora 7.5.1-42.fc18 Assembler: GNU assembler version 2.23.51.0.1-10.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2014-08-29 02:41:02 BST Ended at 2014-08-29 03:54:29 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 == 696 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.11s no: 1.6s (15.0x, -----) me: 3.2s (29.1x, -----) ca:13.1s (118.6x, -----) he: 1.9s (17.4x, -----) ca: 3.7s (33.8x, -----) dr: 2.0s (18.4x, -----) ma: 1.9s (17.6x, -----) bigcode1 valgrind-old:0.11s no: 1.6s (14.9x, 0.6%) me: 3.2s (29.4x, -0.9%) ca:13.2s (120.1x, -1.2%) he: 2.0s (17.8x, -2.6%) ca: 3.7s (33.8x, 0.0%) dr: 1.9s (17.1x, 6.9%) ma: 1.9s (17.6x, 0.0%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 3.9s (35.7x, -----) me: 8.2s (74.9x, -----) ca:25.5s (231.7x, -----) he: 4.8s (44.0x, -----) ca: 7.1s (64.5x, -----) dr: 4.5s (41.3x, -----) ma: 4.5s (40.6x, -----) bigcode2 valgrind-old:0.11s no: 3.9s (35.1x, 1.8%) me: 8.3s (75.7x, -1.1%) ca:25.7s (233.5x, -0.7%) he: 4.9s (44.2x, -0.4%) ca: 7.2s (65.7x, -2.0%) dr: 4.5s (41.3x, 0.0%) ma: 4.5s (40.5x, 0.2%) -- bz2 -- bz2 valgrind-new:0.53s no: 2.1s ( 4.0x, -----) me: 6.2s (11.8x, -----) ca:12.9s (24.4x, -----) he: 9.1s (17.1x, -----) ca:10.8s (20.3x, -----) dr:11.6s (21.8x, -----) ma: 2.1s ( 4.0x, -----) bz2 valgrind-old:0.53s no: 2.1s ( 4.0x, -1.0%) me: 6.3s (11.9x, -0.6%) ca:12.8s (24.2x, 0.9%) he: 9.1s (17.1x, 0.3%) ca:11.0s (20.7x, -1.8%) dr:11.7s (22.2x, -1.5%) ma: 2.1s ( 4.0x, 0.0%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.7x, -----) me: 3.5s (16.0x, -----) ca: 5.6s (25.4x, -----) he: 2.6s (11.8x, -----) ca: 3.1s (14.1x, -----) dr: 2.5s (11.5x, -----) ma: 1.1s ( 5.0x, -----) fbench valgrind-old:0.22s no: 1.1s ( 4.8x, -1.9%) me: 3.7s (16.6x, -3.7%) ca: 5.6s (25.5x, -0.7%) he: 2.5s (11.4x, 3.1%) ca: 3.0s (13.8x, 2.3%) dr: 2.6s (11.6x, -0.8%) ma: 1.1s ( 4.9x, 1.8%) -- ffbench -- ffbench valgrind-new:0.23s no: 1.0s ( 4.3x, -----) me: 2.9s (12.5x, -----) ca: 1.8s ( 8.0x, -----) he: 7.1s (30.7x, -----) ca: 4.3s (18.5x, -----) dr: 3.5s (15.2x, -----) ma: 0.9s ( 3.9x, -----) ffbench valgrind-old:0.23s no: 0.9s ( 4.1x, 3.1%) me: 2.9s (12.5x, 0.0%) ca: 1.9s ( 8.1x, -1.1%) he: 7.2s (31.3x, -1.8%) ca: 4.1s (17.9x, 3.5%) dr: 3.4s (14.6x, 4.0%) ma: 0.9s ( 3.9x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 7.9x, -----) me: 5.3s (66.2x, -----) ca: 6.2s (78.0x, -----) he: 6.8s (84.5x, -----) ca: 3.2s (40.1x, -----) dr: 4.3s (53.2x, -----) ma: 5.0s (62.0x, -----) heap valgrind-old:0.08s no: 0.6s ( 8.0x, -1.6%) me: 5.3s (66.5x, -0.4%) ca: 6.2s (77.5x, 0.6%) he: 6.7s (84.0x, 0.6%) ca: 3.2s (40.2x, -0.3%) dr: 4.2s (53.1x, 0.2%) ma: 4.8s (60.6x, 2.2%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.7s ( 6.4x, -----) me: 9.1s (82.3x, -----) ca: 6.8s (61.6x, -----) he: 7.8s (71.1x, -----) ca: 3.5s (31.7x, -----) dr: 4.8s (43.4x, -----) ma: 5.0s (45.9x, -----) heap_pdb4 valgrind-old:0.11s no: 0.7s ( 6.3x, 1.4%) me: 9.0s (81.5x, 1.0%) ca: 6.8s (62.1x, -0.7%) he: 7.8s (70.5x, 0.9%) ca: 3.5s (31.7x, 0.0%) dr: 4.8s (43.5x, -0.2%) ma: 5.1s (46.3x, -0.8%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (27.0x, -----) me: 1.3s (127.0x, -----) ca: 1.0s (100.0x, -----) he: 1.1s (111.0x, -----) ca: 0.6s (64.0x, -----) dr: 1.0s (97.0x, -----) ma: 1.0s (103.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, 3.7%) me: 1.3s (127.0x, 0.0%) ca: 1.0s (101.0x, -1.0%) he: 1.1s (110.0x, 0.9%) ca: 0.6s (64.0x, 0.0%) dr: 1.0s (96.0x, 1.0%) ma: 1.0s (103.0x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.3x, -----) me: 1.8s (58.3x, -----) ca: 2.6s (88.0x, -----) he: 2.2s (72.3x, -----) ca: 0.9s (30.7x, -----) dr: 1.4s (45.3x, -----) ma: 1.6s (52.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.3x, 0.0%) me: 1.8s (58.7x, -0.6%) ca: 2.6s (87.7x, 0.4%) he: 2.2s (73.0x, -0.9%) ca: 0.9s (30.3x, 1.1%) dr: 1.3s (44.7x, 1.5%) ma: 1.6s (51.7x, 0.6%) -- sarp -- sarp valgrind-new:0.01s no: 0.3s (28.0x, -----) me: 2.3s (229.0x, -----) ca: 1.7s (170.0x, -----) he: 7.3s (734.0x, -----) ca: 0.9s (88.0x, -----) dr: 0.8s (84.0x, -----) ma: 0.3s (31.0x, -----) sarp valgrind-old:0.01s no: 0.3s (27.0x, 3.6%) me: 2.3s (228.0x, 0.4%) ca: 1.7s (170.0x, 0.0%) he: 7.3s (735.0x, -0.1%) ca: 0.9s (89.0x, -1.1%) dr: 0.8s (83.0x, 1.2%) ma: 0.3s (30.0x, 3.2%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.3s ( 8.4x, -----) me: 8.5s (53.1x, -----) ca:10.5s (65.7x, -----) he: 9.6s (59.8x, -----) ca: 7.5s (46.9x, -----) dr: 7.5s (46.8x, -----) ma: 2.4s (15.1x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.4x, -0.7%) me: 8.5s (53.1x, -0.1%) ca:10.6s (66.2x, -0.9%) he: 9.6s (59.8x, 0.0%) ca: 7.5s (47.0x, -0.1%) dr: 7.5s (46.8x, -0.1%) ma: 2.4s (15.1x, 0.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 35m40.932s user 33m46.297s sys 0m23.361s |
|
From: Tom H. <to...@co...> - 2014-08-29 02:47:11
|
valgrind revision: 14381
VEX revision: 2935
C compiler: gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1)
GDB: GNU gdb (GDB) Fedora 7.6.1-46.fc19
Assembler: GNU assembler version 2.23.52.0.1-9.fc19 20130226
C library: GNU C Library (GNU libc) stable release version 2.17
uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64
Vendor version: Fedora release 19 (Schrödingerâs Cat)
Nightly build on bristol ( x86_64, Fedora 19 (Schrödingerâs Cat) )
Started at 2014-08-29 02:31:22 BST
Ended at 2014-08-29 03:46:55 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
== 696 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
none/tests/fdleak_ipv4 (stdout)
none/tests/fdleak_ipv4 (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... done
Regression test results follow
== 696 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short 2014-08-29 02:50:55.230354354 +0100
--- new.short 2014-08-29 03:10:16.893202815 +0100
***************
*** 4,6 ****
Building valgrind ... done
! Running regression tests ... done
--- 4,6 ----
Building valgrind ... done
! Running regression tests ... failed
***************
*** 8,10 ****
! == 696 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
--- 8,12 ----
! == 696 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
! none/tests/fdleak_ipv4 (stdout)
! none/tests/fdleak_ipv4 (stderr)
--tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old
-- Running tests in perf ----------------------------------------------
-- bigcode1 --
bigcode1 valgrind-new:0.11s no: 1.6s (14.6x, -----) me: 3.2s (28.9x, -----) ca:13.2s (120.3x, -----) he: 1.9s (16.9x, -----) ca: 3.7s (33.8x, -----) dr: 1.8s (16.7x, -----) ma: 1.9s (17.4x, -----)
bigcode1 valgrind-old:0.11s no: 1.6s (14.8x, -1.2%) me: 3.2s (28.9x, 0.0%) ca:13.3s (121.3x, -0.8%) he: 1.9s (17.0x, -0.5%) ca: 3.7s (34.0x, -0.5%) dr: 1.9s (16.8x, -0.5%) ma: 1.9s (17.5x, -1.0%)
-- bigcode2 --
bigcode2 valgrind-new:0.11s no: 3.8s (34.5x, -----) me: 8.1s (73.7x, -----) ca:27.2s (247.7x, -----) he: 4.6s (42.0x, -----) ca: 7.0s (63.9x, -----) dr: 4.4s (40.1x, -----) ma: 4.5s (40.5x, -----)
bigcode2 valgrind-old:0.11s no: 3.9s (35.6x, -3.2%) me: 8.1s (73.6x, 0.1%) ca:26.6s (242.1x, 2.3%) he: 4.6s (42.1x, -0.2%) ca: 7.0s (63.5x, 0.6%) dr: 4.4s (40.0x, 0.2%) ma: 4.4s (40.2x, 0.9%)
-- bz2 --
bz2 valgrind-new:0.49s no: 2.1s ( 4.2x, -----) me: 6.1s (12.5x, -----) ca:13.3s (27.1x, -----) he: 9.2s (18.8x, -----) ca:11.1s (22.6x, -----) dr:11.6s (23.6x, -----) ma: 2.2s ( 4.6x, -----)
bz2 valgrind-old:0.49s no: 2.1s ( 4.2x, 0.0%) me: 6.1s (12.5x, -0.3%) ca:13.3s (27.1x, 0.2%) he: 9.3s (18.9x, -0.9%) ca:11.1s (22.7x, -0.5%) dr:11.5s (23.5x, 0.3%) ma: 2.2s ( 4.6x, -0.9%)
-- fbench --
fbench valgrind-new:0.22s no: 1.0s ( 4.7x, -----) me: 3.8s (17.1x, -----) ca: 5.6s (25.3x, -----) he: 2.6s (11.8x, -----) ca: 3.1s (14.0x, -----) dr: 2.4s (10.9x, -----) ma: 1.1s ( 4.8x, -----)
fbench valgrind-old:0.22s no: 1.0s ( 4.6x, 1.0%) me: 3.7s (16.8x, 1.9%) ca: 5.5s (25.0x, 1.3%) he: 2.6s (11.8x, -0.4%) ca: 3.0s (13.8x, 1.6%) dr: 2.4s (10.8x, 0.4%) ma: 1.1s ( 4.9x, -0.9%)
-- ffbench --
ffbench valgrind-new:0.26s no: 1.0s ( 3.7x, -----) me: 2.8s (10.9x, -----) ca: 1.9s ( 7.4x, -----) he: 6.4s (24.7x, -----) ca: 4.5s (17.4x, -----) dr: 3.2s (12.3x, -----) ma: 0.9s ( 3.5x, -----)
ffbench valgrind-old:0.26s no: 0.9s ( 3.7x, 1.0%) me: 2.8s (10.8x, 1.1%) ca: 1.9s ( 7.4x, 0.5%) he: 6.1s (23.3x, 5.5%) ca: 4.5s (17.4x, 0.0%) dr: 3.2s (12.5x, -1.2%) ma: 0.9s ( 3.5x, 1.1%)
-- heap --
heap valgrind-new:0.08s no: 0.7s ( 8.1x, -----) me: 5.1s (63.7x, -----) ca: 6.1s (76.0x, -----) he: 6.7s (83.6x, -----) ca: 3.2s (39.6x, -----) dr: 4.2s (53.1x, -----) ma: 4.7s (59.1x, -----)
heap valgrind-old:0.08s no: 0.6s ( 7.9x, 3.1%) me: 5.1s (63.9x, -0.2%) ca: 6.1s (75.8x, 0.3%) he: 6.7s (83.1x, 0.6%) ca: 3.2s (39.5x, 0.3%) dr: 4.3s (53.6x, -0.9%) ma: 4.8s (59.4x, -0.4%)
-- heap_pdb4 --
heap_pdb4 valgrind-new:0.11s no: 0.7s ( 6.5x, -----) me: 8.9s (80.6x, -----) ca: 6.8s (61.6x, -----) he: 8.0s (72.3x, -----) ca: 3.6s (32.6x, -----) dr: 4.8s (43.6x, -----) ma: 5.2s (47.6x, -----)
heap_pdb4 valgrind-old:0.11s no: 0.7s ( 6.5x, 0.0%) me: 9.0s (81.8x, -1.5%) ca: 6.7s (60.5x, 1.8%) he: 7.9s (71.8x, 0.6%) ca: 3.5s (31.8x, 2.5%) dr: 4.8s (43.5x, 0.2%) ma: 5.1s (46.4x, 2.7%)
-- many-loss-records --
many-loss-records valgrind-new:0.01s no: 0.2s (25.0x, -----) me: 1.3s (130.0x, -----) ca: 1.0s (101.0x, -----) he: 1.1s (113.0x, -----) ca: 0.7s (68.0x, -----) dr: 1.0s (98.0x, -----) ma: 1.1s (107.0x, -----)
many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, -4.0%) me: 1.3s (127.0x, 2.3%) ca: 1.0s (101.0x, 0.0%) he: 1.1s (113.0x, 0.0%) ca: 0.7s (68.0x, 0.0%) dr: 1.0s (99.0x, -1.0%) ma: 1.1s (105.0x, 1.9%)
-- many-xpts --
many-xpts valgrind-new:0.03s no: 0.3s (10.7x, -----) me: 1.5s (49.0x, -----) ca: 2.5s (84.0x, -----) he: 2.1s (69.0x, -----) ca: 0.9s (31.3x, -----) dr: 1.4s (45.0x, -----) ma: 1.5s (51.0x, -----)
many-xpts valgrind-old:0.03s no: 0.3s (10.7x, 0.0%) me: 1.5s (49.0x, 0.0%) ca: 2.5s (84.0x, 0.0%) he: 2.1s (69.3x, -0.5%) ca: 0.9s (31.3x, 0.0%) dr: 1.4s (45.7x, -1.5%) ma: 1.5s (50.3x, 1.3%)
-- sarp --
sarp valgrind-new:0.02s no: 0.3s (14.5x, -----) me: 2.2s (109.0x, -----) ca: 1.8s (88.5x, -----) he: 6.0s (300.0x, -----) ca: 0.9s (46.0x, -----) dr: 0.9s (45.5x, -----) ma: 0.3s (15.0x, -----)
sarp valgrind-old:0.02s no: 0.3s (14.5x, 0.0%) me: 2.2s (108.5x, 0.5%) ca: 1.8s (88.0x, 0.6%) he: 6.0s (302.0x, -0.7%) ca: 0.9s (46.0x, 0.0%) dr: 0.9s (45.5x, 0.0%) ma: 0.3s (15.0x, 0.0%)
-- tinycc --
tinycc valgrind-new:0.16s no: 1.3s ( 8.4x, -----) me: 7.8s (49.1x, -----) ca:10.9s (68.4x, -----) he: 9.9s (62.1x, -----) ca: 7.8s (48.8x, -----) dr: 7.9s (49.6x, -----) ma: 2.4s (15.0x, -----)
tinycc valgrind-old:0.16s no: 1.4s ( 8.7x, -3.7%) me: 7.8s (48.6x, 0.9%) ca:10.7s (66.9x, 2.1%) he: 9.7s (60.9x, 1.9%) ca: 8.0s (49.9x, -2.3%) dr: 8.2s (51.5x, -3.9%) ma: 2.4s (15.0x, 0.0%)
-- Finished tests in perf ----------------------------------------------
== 11 programs, 154 timings =================
real 36m38.619s
user 33m40.402s
sys 0m24.556s
|
|
From: Tom H. <to...@co...> - 2014-08-29 02:36:42
|
valgrind revision: 14381 VEX revision: 2935 C compiler: gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1) GDB: GNU gdb (GDB) Fedora 7.7.1-18.fc20 Assembler: GNU assembler version 2.23.2 C library: GNU C Library (GNU libc) stable release version 2.18 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 20 (Heisenbug) Nightly build on bristol ( x86_64, Fedora 20 ) Started at 2014-08-29 02:21:44 BST Ended at 2014-08-29 03:36:22 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 696 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.10s no: 1.6s (16.2x, -----) me: 3.0s (30.5x, -----) ca:13.1s (131.0x, -----) he: 1.9s (18.6x, -----) ca: 3.7s (37.4x, -----) dr: 1.8s (18.3x, -----) ma: 1.9s (19.1x, -----) bigcode1 valgrind-old:0.10s no: 1.6s (16.1x, 0.6%) me: 3.1s (30.8x, -1.0%) ca:13.3s (133.0x, -1.5%) he: 1.9s (19.0x, -2.2%) ca: 3.7s (37.4x, 0.0%) dr: 1.8s (18.3x, 0.0%) ma: 1.9s (18.9x, 1.0%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 3.8s (34.6x, -----) me: 8.2s (74.3x, -----) ca:26.5s (241.1x, -----) he: 4.6s (42.2x, -----) ca: 7.0s (63.4x, -----) dr: 4.3s (39.3x, -----) ma: 4.4s (40.1x, -----) bigcode2 valgrind-old:0.11s no: 3.8s (34.1x, 1.6%) me: 8.1s (73.9x, 0.5%) ca:25.7s (233.9x, 3.0%) he: 4.7s (42.4x, -0.4%) ca: 7.0s (63.3x, 0.1%) dr: 4.4s (39.8x, -1.4%) ma: 4.4s (40.3x, -0.5%) -- bz2 -- bz2 valgrind-new:0.49s no: 2.1s ( 4.2x, -----) me: 6.2s (12.6x, -----) ca:13.2s (26.8x, -----) he: 8.9s (18.2x, -----) ca:10.7s (21.8x, -----) dr:11.4s (23.2x, -----) ma: 2.1s ( 4.3x, -----) bz2 valgrind-old:0.49s no: 2.1s ( 4.2x, 0.0%) me: 6.2s (12.6x, -0.2%) ca:13.0s (26.5x, 1.1%) he: 9.1s (18.5x, -1.7%) ca:10.9s (22.3x, -2.3%) dr:11.4s (23.3x, -0.2%) ma: 2.1s ( 4.3x, -1.0%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.6x, -----) me: 3.3s (15.0x, -----) ca: 5.5s (25.0x, -----) he: 2.5s (11.2x, -----) ca: 3.2s (14.7x, -----) dr: 2.4s (10.8x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.6x, 1.0%) me: 3.3s (15.0x, 0.0%) ca: 5.5s (25.0x, 0.2%) he: 2.5s (11.5x, -2.0%) ca: 3.2s (14.5x, 0.9%) dr: 2.4s (10.8x, 0.4%) ma: 1.1s ( 4.8x, 0.0%) -- ffbench -- ffbench valgrind-new:0.24s no: 1.0s ( 4.0x, -----) me: 2.9s (12.0x, -----) ca: 1.9s ( 7.9x, -----) he: 6.3s (26.4x, -----) ca: 4.7s (19.6x, -----) dr: 3.2s (13.5x, -----) ma: 0.9s ( 3.8x, -----) ffbench valgrind-old:0.24s no: 1.0s ( 4.0x, 0.0%) me: 2.9s (12.0x, -0.7%) ca: 1.9s ( 8.0x, -1.1%) he: 6.3s (26.3x, 0.2%) ca: 4.4s (18.2x, 7.4%) dr: 3.1s (13.1x, 3.4%) ma: 0.9s ( 3.7x, 2.2%) -- heap -- heap valgrind-new:0.07s no: 0.6s ( 8.9x, -----) me: 4.9s (70.3x, -----) ca: 6.1s (86.7x, -----) he: 6.8s (97.9x, -----) ca: 3.1s (44.9x, -----) dr: 4.2s (60.4x, -----) ma: 4.8s (68.7x, -----) heap valgrind-old:0.07s no: 0.6s ( 9.0x, -1.6%) me: 4.9s (69.7x, 0.8%) ca: 6.1s (86.7x, 0.0%) he: 6.8s (97.0x, 0.9%) ca: 3.2s (45.3x, -1.0%) dr: 4.2s (60.4x, 0.0%) ma: 4.8s (68.7x, 0.0%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.7s ( 6.3x, -----) me: 8.8s (80.3x, -----) ca: 6.7s (60.5x, -----) he: 7.7s (70.1x, -----) ca: 3.6s (32.4x, -----) dr: 4.7s (42.9x, -----) ma: 5.1s (46.0x, -----) heap_pdb4 valgrind-old:0.11s no: 0.7s ( 6.2x, 1.4%) me: 8.9s (80.7x, -0.6%) ca: 6.8s (61.5x, -1.5%) he: 7.8s (70.5x, -0.5%) ca: 3.6s (32.8x, -1.4%) dr: 4.7s (42.9x, 0.0%) ma: 5.1s (46.1x, -0.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.2s (25.0x, -----) me: 1.3s (126.0x, -----) ca: 1.0s (101.0x, -----) he: 1.1s (111.0x, -----) ca: 0.7s (66.0x, -----) dr: 1.0s (96.0x, -----) ma: 1.1s (105.0x, -----) many-loss-records valgrind-old:0.01s no: 0.2s (25.0x, 0.0%) me: 1.3s (128.0x, -1.6%) ca: 1.0s (101.0x, 0.0%) he: 1.1s (110.0x, 0.9%) ca: 0.7s (65.0x, 1.5%) dr: 1.0s (96.0x, 0.0%) ma: 1.0s (104.0x, 1.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.7x, -----) me: 1.4s (48.0x, -----) ca: 2.5s (84.7x, -----) he: 2.1s (69.3x, -----) ca: 0.9s (31.0x, -----) dr: 1.4s (46.0x, -----) ma: 1.5s (51.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.3x, 3.1%) me: 1.5s (48.7x, -1.4%) ca: 2.5s (84.3x, 0.4%) he: 2.1s (68.7x, 1.0%) ca: 0.9s (31.0x, 0.0%) dr: 1.4s (45.7x, 0.7%) ma: 1.5s (50.7x, 0.7%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (13.5x, -----) me: 2.2s (108.0x, -----) ca: 1.7s (86.0x, -----) he: 5.9s (295.0x, -----) ca: 0.9s (46.5x, -----) dr: 0.9s (46.0x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (14.0x, -3.7%) me: 2.2s (108.0x, 0.0%) ca: 1.7s (85.5x, 0.6%) he: 5.9s (297.0x, -0.7%) ca: 0.9s (45.5x, 2.2%) dr: 0.9s (45.5x, 1.1%) ma: 0.3s (15.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.17s no: 1.4s ( 7.9x, -----) me: 7.8s (46.0x, -----) ca:10.9s (63.9x, -----) he: 9.8s (57.8x, -----) ca: 7.6s (44.6x, -----) dr: 7.9s (46.6x, -----) ma: 2.6s (15.1x, -----) tinycc valgrind-old:0.17s no: 1.4s ( 8.4x, -5.2%) me: 7.9s (46.7x, -1.5%) ca:11.5s (67.4x, -5.4%) he:10.0s (58.9x, -1.9%) ca: 8.2s (48.5x, -8.7%) dr: 8.3s (48.8x, -4.7%) ma: 2.7s (15.9x, -5.5%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 35m56.447s user 33m16.600s sys 0m24.391s |