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
(5) |
2
(5) |
3
(17) |
4
(21) |
5
(24) |
6
(14) |
7
(14) |
|
8
(14) |
9
(18) |
10
(13) |
11
(15) |
12
(12) |
13
(4) |
14
(11) |
|
15
(10) |
16
(6) |
17
(14) |
18
(16) |
19
(10) |
20
(3) |
21
(12) |
|
22
(12) |
23
(11) |
24
(19) |
25
(15) |
26
(14) |
27
(16) |
28
(12) |
|
From: <sv...@va...> - 2015-02-05 22:31:04
|
Author: philippe
Date: Thu Feb 5 22:30:57 2015
New Revision: 14911
Log:
Fix debug output of aspacemgr
The list of segnames was shown with a seq nr,
while each segment was referencing its segname with an offset.
The patch ensures that at all places, both the seq nr and the
offset is output
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
Modified: trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
==============================================================================
--- trunk/coregrind/m_aspacemgr/aspacemgr-linux.c (original)
+++ trunk/coregrind/m_aspacemgr/aspacemgr-linux.c Thu Feb 5 22:30:57 2015
@@ -479,6 +479,22 @@
ML_(am_sprintf)(buf, fmt, len);
}
+/* Returns a sequence number for the fnIdx position in segnames.
+ Used in aspacemgr debug output to associate a segment with
+ the list of segments output at the beginning. */
+static Int fnIdx_seqnr(Int fnIdx)
+{
+ SizeT ix;
+ Int seqnr = -1;
+
+ for (ix = 0; ix < segnames_used; ix += VG_(strlen)(segnames + ix) + 1) {
+ seqnr++;
+ if (ix == fnIdx)
+ return seqnr;
+ }
+
+ return -1;
+}
/* Show full details of an NSegment */
@@ -496,14 +512,15 @@
VG_(debugLog)(
logLevel, "aspacem",
"%3d: %s %010llx-%010llx %s %c%c%c%c%c %s "
- "d=0x%03llx i=%-7lld o=%-7lld (%d) %s\n",
+ "d=0x%03llx i=%-7lld o=%-7lld (%d,%d) %s\n",
segNo, show_SegKind(seg->kind),
(ULong)seg->start, (ULong)seg->end, len_buf,
seg->hasR ? 'r' : '-', seg->hasW ? 'w' : '-',
seg->hasX ? 'x' : '-', seg->hasT ? 'T' : '-',
seg->isCH ? 'H' : '-',
show_ShrinkMode(seg->smode),
- seg->dev, seg->ino, seg->offset, seg->fnIdx,
+ seg->dev, seg->ino, seg->offset,
+ fnIdx_seqnr(seg->fnIdx), seg->fnIdx,
name
);
}
@@ -543,13 +560,14 @@
VG_(debugLog)(
logLevel, "aspacem",
"%3d: %s %010llx-%010llx %s %c%c%c%c%c d=0x%03llx "
- "i=%-7lld o=%-7lld (%d)\n",
+ "i=%-7lld o=%-7lld (%d,%d)\n",
segNo, show_SegKind(seg->kind),
(ULong)seg->start, (ULong)seg->end, len_buf,
seg->hasR ? 'r' : '-', seg->hasW ? 'w' : '-',
seg->hasX ? 'x' : '-', seg->hasT ? 'T' : '-',
seg->isCH ? 'H' : '-',
- seg->dev, seg->ino, seg->offset, seg->fnIdx
+ seg->dev, seg->ino, seg->offset,
+ fnIdx_seqnr(seg->fnIdx), seg->fnIdx
);
break;
@@ -587,7 +605,7 @@
i = 0;
for (ix = 0; ix < segnames_used; ix += VG_(strlen)(segnames + ix) + 1) {
VG_(debugLog)(logLevel, "aspacem",
- "(%2d) %s\n", i++, segnames + ix);
+ "(%d,%lu) %s\n", i++, ix, segnames + ix);
}
for (i = 0; i < nsegments_used; i++)
show_nsegment( logLevel, i, &nsegments[i] );
|
|
From: Florian K. <fl...@ei...> - 2015-02-05 17:20:49
|
On 04.02.2015 21:18, Philippe Waroquiers wrote: > 2. in case an error is reported for such a mmap-ed address, > then it will be somewhat wrongly/surprisingly shown as belonging > to another filename than the mmaped filename, if some merging was > done. Such merging might or might not happen, depending > on how valgrind choosed where to mmap the 2 filenames. Yes, that was my argument. The dead-beat argument against it was that the code might rely on segments being maximally merged - of which we do not know whether this is so. > 3. not merging solves this memleak. Actually, if we ever want to fix https://bugs.kde.org/show_bug.cgi?id=79362 then we will have to store the segment name somewhere, because we might want it after the shared object has been unloaded. Florian |
|
From: <sv...@va...> - 2015-02-05 16:22:50
|
Author: sewardj
Date: Thu Feb 5 16:22:43 2015
New Revision: 14910
Log:
Update.
Modified:
trunk/NEWS
trunk/docs/internals/3_10_BUGSTATUS.txt
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Feb 5 16:22:43 2015
@@ -48,6 +48,10 @@
333051 mmap of huge pages fails due to incorrect alignment
== 339163
334802 valgrind does not always explain why a given option is bad
+335785 amd64->IR 0xC4 0xE2 0x75 0x2F (vmaskmovpd)
+ == 307399
+ == 343175
+ == 342740
338731 ppc: Fix testuite build for toolchains not supporting -maltivec
338995 shmat with hugepages (SHM_HUGETLB) fails with EINVAL
339045 Getting valgrind to compile and run on OS X Yosemite (10.10)
@@ -72,12 +76,16 @@
341698 Valgrind's AESKEYGENASSIST gives wrong result in words 0 and 2
when dest register = source register
341789 aarch64: shmat fails with valgrind on ARMv8
+342038 Unhandled syscalls on aarch64 (mbind/get/set_mempolicy)
342063 wrong format specifier for test mcblocklistsearch in gdbserver_tests
342221 socket connect false positive uninit memory for unknown af family
+342603 Add I2C_SMBUS ioctl support
342795 Internal glibc __GI_mempcpy call should be intercepted
343012 Unhandled syscall 319 (memfd_create)
+343069 Patch updating v4l2 API support
343303 Fix known deliberate memory leak in setenv() on Mac OS X 10.10
-343306 OS X 10.10: UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option (partial fix)
+343306 OS X 10.10: UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option
+343332 Unhandled instruction 0x9E310021 (fcvtmu) on aarch64
343802 s390x: Fix false positives "conditional jump or move depends on
unitialised value(s)"
n-i-bz Provide implementations of certain compiler builtins to support
@@ -85,11 +93,6 @@
n-i-bz Old STABS code is still being compiled, but never used. Remove it.
n-i-bz Fix compilation on distros with glibc < 2.5
---
-335785 amd64->IR 0xC4 0xE2 0x75 0x2F (vmaskmovpd)
- == 307399
- == 343175
-
Release 3.10.1 (25 November 2014)
Modified: trunk/docs/internals/3_10_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_10_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_10_BUGSTATUS.txt Thu Feb 5 16:22:43 2015
@@ -25,10 +25,6 @@
342571 Valgrind chokes on AVX compare intrinsic with _CMP_GE_QS
probably easy to fix
-342740 unhandled instruction bytes: 0xC4 0xE2 0xFD 0x8E 0x12 0x48 0x83 0xC2
- vpmaskmovq %ymm2,%ymm0,(%rdx)
- Is probably fixed now
-
342988 INT 80 not recognised on amd64
=== VEX/arm ============================================================
@@ -46,9 +42,6 @@
=== VEX/arm64 ==========================================================
-343332 Unhandled instruction 0x9E310021 (fcvtmu) on aarch64
- HAS PATCH
-
343335 unhandled instruction 0x1E638400 (fccmp)
=== VEX/x86 ============================================================
@@ -98,20 +91,11 @@
== 335143
possibly unfixable
-342038 Unhandled system call 236 on aarch64 (mbind/get/set_mempolicy)
- arm64, has patch
-
342040 Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones
to a different stack
-342603 [PATCH] Add I2C_SMBUS ioctl
- Has patch; could land
-
342809 mremap fails when protection is enabled
-343069 Patch updating v4l2 API support
- Has patch; could land
-
343099 Linux setns syscall wrapper missing, unhandled syscall: 308
HAS PATCH. Check that mayBlock is enabled.
@@ -138,12 +122,9 @@
__strcpy_ssse3
obscure?
-340320 replacement malloc command line options (--trace-malloc
- and --alignment) are invisible
-
340392 Incorrect "Conditional jump..." message
Optimised code a la Clang
- PROBABLE CANTFIXZ
+ PROBABLE CANTFIX
342683 memory past the brk limit is not initially inaccessible/unaddressable
|
|
From: <sv...@va...> - 2015-02-05 15:59:08
|
Author: sewardj
Date: Thu Feb 5 15:59:01 2015
New Revision: 14909
Log:
Update to track v4l2 API for kernel version 3.19 changes. Patch from
Hans Verkuil (hve...@xs...). Fixes #343069.
Modified:
trunk/include/vki/vki-linux.h
Modified: trunk/include/vki/vki-linux.h
==============================================================================
--- trunk/include/vki/vki-linux.h (original)
+++ trunk/include/vki/vki-linux.h Thu Feb 5 15:59:01 2015
@@ -3681,6 +3681,8 @@
__vki_u32 colorspace; /* enum vki_v4l2_colorspace */
__vki_u32 priv; /* private data, depends on pixelformat */
__vki_u32 flags; /* format flags (VKI_V4L2_PIX_FMT_FLAG_*) */
+ __vki_u32 ycbcr_enc;
+ __vki_u32 quantization;
};
struct vki_v4l2_fmtdesc {
@@ -4207,7 +4209,9 @@
struct vki_v4l2_plane_pix_format plane_fmt[VKI_VIDEO_MAX_PLANES];
__vki_u8 num_planes;
__vki_u8 flags;
- __vki_u8 reserved[10];
+ __vki_u8 ycbcr_enc;
+ __vki_u8 quantization;
+ __vki_u8 reserved[8];
} __attribute__ ((packed));
struct vki_v4l2_sdr_format {
@@ -4435,7 +4439,9 @@
__vki_u32 code;
__vki_u32 field;
__vki_u32 colorspace;
- __vki_u32 reserved[7];
+ __vki_u16 ycbcr_enc;
+ __vki_u16 quantization;
+ __vki_u32 reserved[6];
};
struct vki_v4l2_subdev_format {
|
|
From: <sv...@va...> - 2015-02-05 15:52:53
|
Author: sewardj
Date: Thu Feb 5 15:52:46 2015
New Revision: 14908
Log:
Add wrapper support for I2C_SMBUS ioctls. Patch from
sup...@gm.... Fixes #342603.
Modified:
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/include/vki/vki-linux.h
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c Thu Feb 5 15:52:46 2015
@@ -6790,6 +6790,58 @@
}
}
break;
+ case VKI_I2C_SMBUS:
+ if ( ARG3 ) {
+ struct vki_i2c_smbus_ioctl_data *vkis
+ = (struct vki_i2c_smbus_ioctl_data *) ARG3;
+ PRE_MEM_READ("ioctl(VKI_I2C_SMBUS).i2c_smbus_ioctl_data.read_write",
+ (Addr)&vkis->read_write, sizeof(vkis->read_write));
+ PRE_MEM_READ("ioctl(VKI_I2C_SMBUS).i2c_smbus_ioctl_data.size",
+ (Addr)&vkis->size, sizeof(vkis->size));
+ PRE_MEM_READ("ioctl(VKI_I2C_SMBUS).i2c_smbus_ioctl_data.command",
+ (Addr)&vkis->command, sizeof(vkis->command));
+ /* i2c_smbus_write_quick hides its value in read_write, so
+ this variable can hava a different meaning */
+ /* to make matters worse i2c_smbus_write_byte stores its
+ value in command */
+ if ( ! (((vkis->size == VKI_I2C_SMBUS_QUICK)
+ && (vkis->command == VKI_I2C_SMBUS_QUICK)) ||
+ ((vkis->size == VKI_I2C_SMBUS_BYTE)
+ && (vkis->read_write == VKI_I2C_SMBUS_WRITE)))) {
+ /* the rest uses the byte array to store the data,
+ some the first byte for size */
+ UInt size;
+ switch(vkis->size) {
+ case VKI_I2C_SMBUS_BYTE_DATA:
+ size = 1;
+ break;
+ case VKI_I2C_SMBUS_WORD_DATA:
+ case VKI_I2C_SMBUS_PROC_CALL:
+ size = 2;
+ break;
+ case VKI_I2C_SMBUS_BLOCK_DATA:
+ case VKI_I2C_SMBUS_I2C_BLOCK_BROKEN:
+ case VKI_I2C_SMBUS_BLOCK_PROC_CALL:
+ case VKI_I2C_SMBUS_I2C_BLOCK_DATA:
+ size = vkis->data->block[0];
+ break;
+ default:
+ size = 0;
+ }
+
+ if ((vkis->read_write == VKI_I2C_SMBUS_READ)
+ || (vkis->size == VKI_I2C_SMBUS_PROC_CALL)
+ || (vkis->size == VKI_I2C_SMBUS_BLOCK_PROC_CALL))
+ PRE_MEM_WRITE("ioctl(VKI_I2C_SMBUS)"
+ ".i2c_smbus_ioctl_data.data",
+ (Addr)&vkis->data->block[0], size);
+ else
+ PRE_MEM_READ("ioctl(VKI_I2C_SMBUS)."
+ "i2c_smbus_ioctl_data.data",
+ (Addr)&vkis->data->block[0], size);
+ }
+ }
+ break;
/* Wireless extensions ioctls */
case VKI_SIOCSIWCOMMIT:
@@ -9225,6 +9277,43 @@
}
}
break;
+ case VKI_I2C_SMBUS:
+ if ( ARG3 ) {
+ struct vki_i2c_smbus_ioctl_data *vkis
+ = (struct vki_i2c_smbus_ioctl_data *) ARG3;
+ /* i2c_smbus_write_quick hides its value in read_write, so
+ this variable can hava a different meaning */
+ /* to make matters worse i2c_smbus_write_byte stores its
+ value in command */
+ if ((vkis->read_write == VKI_I2C_SMBUS_READ)
+ || (vkis->size == VKI_I2C_SMBUS_PROC_CALL)
+ || (vkis->size == VKI_I2C_SMBUS_BLOCK_PROC_CALL)) {
+ if ( ! ((vkis->size == VKI_I2C_SMBUS_QUICK)
+ && (vkis->command == VKI_I2C_SMBUS_QUICK))) {
+ UInt size;
+ switch(vkis->size) {
+ case VKI_I2C_SMBUS_BYTE:
+ case VKI_I2C_SMBUS_BYTE_DATA:
+ size = 1;
+ break;
+ case VKI_I2C_SMBUS_WORD_DATA:
+ case VKI_I2C_SMBUS_PROC_CALL:
+ size = 2;
+ break;
+ case VKI_I2C_SMBUS_BLOCK_DATA:
+ case VKI_I2C_SMBUS_I2C_BLOCK_BROKEN:
+ case VKI_I2C_SMBUS_BLOCK_PROC_CALL:
+ case VKI_I2C_SMBUS_I2C_BLOCK_DATA:
+ size = vkis->data->block[0];
+ break;
+ default:
+ size = 0;
+ }
+ POST_MEM_WRITE((Addr)&vkis->data->block[0], size);
+ }
+ }
+ }
+ break;
/* Wireless extensions ioctls */
case VKI_SIOCSIWCOMMIT:
Modified: trunk/include/vki/vki-linux.h
==============================================================================
--- trunk/include/vki/vki-linux.h (original)
+++ trunk/include/vki/vki-linux.h Thu Feb 5 15:52:46 2015
@@ -2598,16 +2598,48 @@
// From linux-2.6.20.1/include/linux/i2c.h
//----------------------------------------------------------------------
-#define VKI_I2C_SLAVE 0x0703 /* Change slave address */
- /* Attn.: Slave address is 7 or 10 bits */
-#define VKI_I2C_SLAVE_FORCE 0x0706 /* Change slave address */
- /* Attn.: Slave address is 7 or 10 bits */
- /* This changes the address, even if it */
- /* is already taken! */
-#define VKI_I2C_TENBIT 0x0704 /* 0 for 7 bit addrs, != 0 for 10 bit */
-#define VKI_I2C_FUNCS 0x0705 /* Get the adapter functionality */
-#define VKI_I2C_RDWR 0x0707 /* Combined R/W transfer (one STOP only) */
-#define VKI_I2C_PEC 0x0708 /* != 0 for SMBus PEC */
+#define VKI_I2C_SMBUS_QUICK 0
+#define VKI_I2C_SMBUS_BYTE 1
+#define VKI_I2C_SMBUS_BYTE_DATA 2
+#define VKI_I2C_SMBUS_WORD_DATA 3
+#define VKI_I2C_SMBUS_PROC_CALL 4
+#define VKI_I2C_SMBUS_BLOCK_DATA 5
+#define VKI_I2C_SMBUS_I2C_BLOCK_BROKEN 6
+#define VKI_I2C_SMBUS_BLOCK_PROC_CALL 7 /* SMBus 2.0 */
+#define VKI_I2C_SMBUS_I2C_BLOCK_DATA 8
+
+/* smbus_access read or write markers */
+#define VKI_I2C_SMBUS_READ 1
+#define VKI_I2C_SMBUS_WRITE 0
+
+#define VKI_I2C_SLAVE 0x0703 /* Change slave address */
+ /* Attn.: Slave address is 7 or 10 bits */
+#define VKI_I2C_SLAVE_FORCE 0x0706 /* Change slave address */
+ /* Attn.: Slave address is 7 or 10 bits */
+ /* This changes the address, even if it */
+ /* is already taken! */
+#define VKI_I2C_TENBIT 0x0704 /* 0 for 7 bit addrs, != 0 for 10 bit */
+#define VKI_I2C_FUNCS 0x0705 /* Get the adapter functionality */
+#define VKI_I2C_RDWR 0x0707 /* Combined R/W transfer (one STOP only) */
+#define VKI_I2C_PEC 0x0708 /* != 0 for SMBus PEC */
+#define VKI_I2C_SMBUS 0x0720 /* SMBus transfer */
+
+#define VKI_I2C_SMBUS_BLOCK_MAX 32 /* As specified in SMBus standard */
+union vki_i2c_smbus_data {
+ __vki_u8 byte;
+ __vki_u16 word;
+ __vki_u8 block[VKI_I2C_SMBUS_BLOCK_MAX + 2];
+ /* block[0] is used for length */
+ /* and one more for PEC */
+};
+
+/* This is the structure as used in the I2C_SMBUS ioctl call */
+struct vki_i2c_smbus_ioctl_data {
+ __vki_u8 read_write;
+ __vki_u8 command;
+ __vki_u32 size;
+ union vki_i2c_smbus_data __user *data;
+};
struct vki_i2c_msg {
__vki_u16 addr; /* slave address */
|
|
From: <sv...@va...> - 2015-02-05 15:28:35
|
Author: sewardj
Date: Thu Feb 5 15:28:28 2015
New Revision: 14907
Log:
Enable sys_mbind, sys_get_mempolicy, sys_set_mempolicy on arm64-linux.
Patch from Hideaki Kimura (hid...@gm...). Fixes #342038.
Modified:
trunk/coregrind/m_syswrap/syswrap-arm64-linux.c
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 Thu Feb 5 15:28:28 2015
@@ -1032,6 +1032,9 @@
GENX_(__NR_mlock, sys_mlock), // 228
GENX_(__NR_mlockall, sys_mlockall), // 230
GENX_(__NR_madvise, sys_madvise), // 233
+ LINX_(__NR_mbind, sys_mbind), // 235
+ LINXY(__NR_get_mempolicy, sys_get_mempolicy), // 236
+ LINX_(__NR_set_mempolicy, sys_set_mempolicy), // 237
GENXY(__NR_wait4, sys_wait4), // 260
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 270
|
|
From: <sv...@va...> - 2015-02-05 15:22:38
|
Author: sewardj
Date: Thu Feb 5 15:22:30 2015
New Revision: 3085
Log:
Enable FCVTMU Xd,Sn. Fixes #343332.
Modified:
trunk/priv/guest_arm64_toIR.c
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Thu Feb 5 15:22:30 2015
@@ -12558,6 +12558,7 @@
|| (iop == Iop_F32toI64S && irrm == Irrm_NEAREST)/* FCVT{A,N}S X,S */
/* F32toI64U */
|| (iop == Iop_F32toI64U && irrm == Irrm_ZERO) /* FCVTZU Xd,Sn */
+ || (iop == Iop_F32toI64U && irrm == Irrm_NegINF) /* FCVTMU Xd,Sn */
|| (iop == Iop_F32toI64U && irrm == Irrm_PosINF) /* FCVTPU Xd,Sn */
/* F64toI32S */
|| (iop == Iop_F64toI32S && irrm == Irrm_ZERO) /* FCVTZS Wd,Dn */
|
Author: sewardj
Date: Thu Feb 5 12:59:46 2015
New Revision: 14906
Log:
Allow the user to specify precise-exception behaviour for translations
made from file-backed mappings (AOT code, basically) that is different
from the default behaviour as specified by --vex-iropt-register-updates.
New flag is --px-file-backed=, with the same possible args as
--vex-iropt-register-updates has.
Add a new flag --px-default, which is a short alias for
--vex-iropt-register-updates.
Add one line of stats output when --stats=yes, showing counts of how
many translations have been made under each of the 4 different PX
optimisation settings.
No user-visible change if you don't use the new flags.
Relies on VEX API change in r3084.
Modified:
trunk/cachegrind/cg_main.c
trunk/callgrind/main.c
trunk/coregrind/m_main.c
trunk/coregrind/m_options.c
trunk/coregrind/m_translate.c
trunk/include/pub_tool_options.h
trunk/massif/ms_main.c
trunk/none/tests/cmdline2.stdout.exp
Modified: trunk/cachegrind/cg_main.c
==============================================================================
--- trunk/cachegrind/cg_main.c (original)
+++ trunk/cachegrind/cg_main.c Thu Feb 5 12:59:46 2015
@@ -1787,8 +1787,10 @@
VG_(details_bug_reports_to) (VG_BUGS_TO);
VG_(details_avg_translation_sizeB) ( 500 );
- VG_(clo_vex_control).iropt_register_updates
+ VG_(clo_vex_control).iropt_register_updates_default
+ = VG_(clo_px_file_backed)
= VexRegUpdSpAtMemAccess; // overridable by the user.
+
VG_(basic_tool_funcs) (cg_post_clo_init,
cg_instrument,
cg_fini);
Modified: trunk/callgrind/main.c
==============================================================================
--- trunk/callgrind/main.c (original)
+++ trunk/callgrind/main.c Thu Feb 5 12:59:46 2015
@@ -1965,7 +1965,7 @@
static
void CLG_(post_clo_init)(void)
{
- if (VG_(clo_vex_control).iropt_register_updates
+ if (VG_(clo_vex_control).iropt_register_updates_default
!= VexRegUpdSpAtMemAccess) {
CLG_DEBUG(1, " Using user specified value for "
"--vex-iropt-register-updates\n");
@@ -1975,6 +1975,15 @@
"sp-at-mem-access\n");
}
+ if (VG_(clo_px_file_backed) != VexRegUpdSpAtMemAccess) {
+ CLG_DEBUG(1, " Using user specified value for "
+ "--px-file-backed\n");
+ } else {
+ CLG_DEBUG(1,
+ " Using default --px-file-backed="
+ "sp-at-mem-access\n");
+ }
+
if (VG_(clo_vex_control).iropt_unroll_thresh != 0) {
VG_(message)(Vg_UserMsg,
"callgrind only works with --vex-iropt-unroll-thresh=0\n"
@@ -2034,8 +2043,10 @@
VG_(details_bug_reports_to) (VG_BUGS_TO);
VG_(details_avg_translation_sizeB) ( 500 );
- VG_(clo_vex_control).iropt_register_updates
+ VG_(clo_vex_control).iropt_register_updates_default
+ = VG_(clo_px_file_backed)
= VexRegUpdSpAtMemAccess; // overridable by the user.
+
VG_(clo_vex_control).iropt_unroll_thresh = 0; // cannot be overriden.
VG_(clo_vex_control).guest_chase_thresh = 0; // cannot be overriden.
Modified: trunk/coregrind/m_main.c
==============================================================================
--- trunk/coregrind/m_main.c (original)
+++ trunk/coregrind/m_main.c Thu Feb 5 12:59:46 2015
@@ -246,26 +246,34 @@
" Vex options for all Valgrind tools:\n"
" --vex-iropt-verbosity=<0..9> [0]\n"
" --vex-iropt-level=<0..2> [2]\n"
-" --vex-iropt-register-updates=sp-at-mem-access\n"
-" |unwindregs-at-mem-access\n"
-" |allregs-at-mem-access\n"
-" |allregs-at-each-insn [unwindregs-at-mem-access]\n"
" --vex-iropt-unroll-thresh=<0..400> [120]\n"
" --vex-guest-max-insns=<1..100> [50]\n"
" --vex-guest-chase-thresh=<0..99> [10]\n"
" --vex-guest-chase-cond=no|yes [no]\n"
-" --trace-flags and --profile-flags values (omit the middle space):\n"
-" 1000 0000 show conversion into IR\n"
-" 0100 0000 show after initial opt\n"
-" 0010 0000 show after instrumentation\n"
-" 0001 0000 show after second opt\n"
-" 0000 1000 show after tree building\n"
-" 0000 0100 show selecting insns\n"
-" 0000 0010 show after reg-alloc\n"
-" 0000 0001 show final assembly\n"
-" 0000 0000 show summary profile only\n"
-" (Nb: you need --trace-notbelow and/or --trace-notabove\n"
-" with --trace-flags for full details)\n"
+" Precise exception control. Possible values for 'mode' are as follows\n"
+" and specify the minimum set of registers guaranteed to be correct\n"
+" immediately prior to memory access instructions:\n"
+" sp-at-mem-access stack pointer only\n"
+" unwindregs-at-mem-access registers needed for stack unwinding\n"
+" allregs-at-mem-access all registers\n"
+" allregs-at-each-insn all registers are always correct\n"
+" Default value for all 3 following flags is [unwindregs-at-mem-access].\n"
+" --vex-iropt-register-updates=mode setting to use by default\n"
+" --px-default=mode synonym for --vex-iropt-register-updates\n"
+" --px-file-backed=mode optional setting for file-backed (non-JIT) code\n"
+" Tracing and profile control:\n"
+" --trace-flags and --profile-flags values (omit the middle space):\n"
+" 1000 0000 show conversion into IR\n"
+" 0100 0000 show after initial opt\n"
+" 0010 0000 show after instrumentation\n"
+" 0001 0000 show after second opt\n"
+" 0000 1000 show after tree building\n"
+" 0000 0100 show selecting insns\n"
+" 0000 0010 show after reg-alloc\n"
+" 0000 0001 show final assembly\n"
+" 0000 0000 show summary profile only\n"
+" (Nb: you need --trace-notbelow and/or --trace-notabove\n"
+" with --trace-flags for full details)\n"
"\n"
" debugging options for Valgrind tools that report errors\n"
" --dump-error=<number> show translation for basic block associated\n"
@@ -469,12 +477,21 @@
VG_(clo_req_tsyms) = VG_(newXA)(VG_(malloc), "main.mpclo.6",
VG_(free), sizeof(HChar *));
+ /* Constants for parsing PX control flags. */
+ const HChar* pxStrings[5]
+ = { "sp-at-mem-access", "unwindregs-at-mem-access",
+ "allregs-at-mem-access", "allregs-at-each-insn", NULL };
+ const VexRegisterUpdates pxVals[5]
+ = { VexRegUpdSpAtMemAccess, VexRegUpdUnwindregsAtMemAccess,
+ VexRegUpdAllregsAtMemAccess, VexRegUpdAllregsAtEachInsn, 0/*inval*/ };
+
/* BEGIN command-line processing loop */
for (i = 0; i < VG_(sizeXA)( VG_(args_for_valgrind) ); i++) {
HChar* arg = * (HChar**) VG_(indexXA)( VG_(args_for_valgrind), i );
HChar* colon = arg;
+ UInt ix = 0;
// Look for a colon in the option name.
while (*colon && *colon != ':' && *colon != '=')
@@ -564,7 +581,8 @@
else if VG_XACT_CLO(arg, "--vgdb=full", VG_(clo_vgdb), Vg_VgdbFull) {
/* automatically updates register values at each insn
with --vgdb=full */
- VG_(clo_vex_control).iropt_register_updates
+ VG_(clo_vex_control).iropt_register_updates_default
+ = VG_(clo_px_file_backed)
= VexRegUpdAllregsAtEachInsn;
}
else if VG_INT_CLO (arg, "--vgdb-poll", VG_(clo_vgdb_poll)) {}
@@ -687,22 +705,29 @@
else if VG_BINT_CLO(arg, "--vex-iropt-level",
VG_(clo_vex_control).iropt_level, 0, 2) {}
- else if VG_XACT_CLO(arg,
- "--vex-iropt-register-updates=sp-at-mem-access",
- VG_(clo_vex_control).iropt_register_updates,
- VexRegUpdSpAtMemAccess) {}
- else if VG_XACT_CLO(arg,
- "--vex-iropt-register-updates=unwindregs-at-mem-access",
- VG_(clo_vex_control).iropt_register_updates,
- VexRegUpdUnwindregsAtMemAccess) {}
- else if VG_XACT_CLO(arg,
- "--vex-iropt-register-updates=allregs-at-mem-access",
- VG_(clo_vex_control).iropt_register_updates,
- VexRegUpdAllregsAtMemAccess) {}
- else if VG_XACT_CLO(arg,
- "--vex-iropt-register-updates=allregs-at-each-insn",
- VG_(clo_vex_control).iropt_register_updates,
- VexRegUpdAllregsAtEachInsn) {}
+ else if VG_STRINDEX_CLO(arg, "--vex-iropt-register-updates",
+ pxStrings, ix) {
+ vg_assert(ix < 4);
+ vg_assert(pxVals[ix] >= VexRegUpdSpAtMemAccess);
+ vg_assert(pxVals[ix] <= VexRegUpdAllregsAtEachInsn);
+ VG_(clo_vex_control).iropt_register_updates_default = pxVals[ix];
+ }
+ else if VG_STRINDEX_CLO(arg, "--px-default", pxStrings, ix) {
+ // NB: --px-default is an alias for the hard-to-remember
+ // --vex-iropt-register-updates, hence the same logic.
+ vg_assert(ix < 4);
+ vg_assert(pxVals[ix] >= VexRegUpdSpAtMemAccess);
+ vg_assert(pxVals[ix] <= VexRegUpdAllregsAtEachInsn);
+ VG_(clo_vex_control).iropt_register_updates_default = pxVals[ix];
+ }
+ else if VG_STRINDEX_CLO(arg, "--px-file-backed", pxStrings, ix) {
+ // Whereas --px-file-backed isn't
+ // the same flag as --vex-iropt-register-updates.
+ vg_assert(ix < 4);
+ vg_assert(pxVals[ix] >= VexRegUpdSpAtMemAccess);
+ vg_assert(pxVals[ix] <= VexRegUpdAllregsAtEachInsn);
+ VG_(clo_px_file_backed) = pxVals[ix];
+ }
else if VG_BINT_CLO(arg, "--vex-iropt-unroll-thresh",
VG_(clo_vex_control).iropt_unroll_thresh, 0, 400) {}
@@ -1855,7 +1880,7 @@
# endif
// END HACK
- // Set default vex control params
+ // Set default vex control params.
LibVEX_default_VexControl(& VG_(clo_vex_control));
//--------------------------------------------------------------
Modified: trunk/coregrind/m_options.c
==============================================================================
--- trunk/coregrind/m_options.c (original)
+++ trunk/coregrind/m_options.c Thu Feb 5 12:59:46 2015
@@ -43,7 +43,10 @@
/* Define, and set defaults. */
+
VexControl VG_(clo_vex_control);
+VexRegisterUpdates VG_(clo_px_file_backed) = VexRegUpd_INVALID;
+
Bool VG_(clo_error_limit) = True;
Int VG_(clo_error_exitcode) = 0;
HChar *VG_(clo_error_markers)[2] = {NULL, NULL};
Modified: trunk/coregrind/m_translate.c
==============================================================================
--- trunk/coregrind/m_translate.c (original)
+++ trunk/coregrind/m_translate.c Thu Feb 5 12:59:46 2015
@@ -67,9 +67,14 @@
/*--- Stats ---*/
/*------------------------------------------------------------*/
-static UInt n_SP_updates_fast = 0;
-static UInt n_SP_updates_generic_known = 0;
-static UInt n_SP_updates_generic_unknown = 0;
+static ULong n_SP_updates_fast = 0;
+static ULong n_SP_updates_generic_known = 0;
+static ULong n_SP_updates_generic_unknown = 0;
+
+static ULong n_PX_VexRegUpdSpAtMemAccess = 0;
+static ULong n_PX_VexRegUpdUnwindregsAtMemAccess = 0;
+static ULong n_PX_VexRegUpdAllregsAtMemAccess = 0;
+static ULong n_PX_VexRegUpdAllregsAtEachInsn = 0;
void VG_(print_translation_stats) ( void )
{
@@ -77,21 +82,24 @@
+ n_SP_updates_generic_unknown;
if (n_SP_updates == 0) {
VG_(message)(Vg_DebugMsg, "translate: no SP updates identified\n");
- return;
+ } else {
+ VG_(message)(Vg_DebugMsg,
+ "translate: fast SP updates identified: %'llu (%3.1f%%)\n",
+ n_SP_updates_fast, n_SP_updates_fast * 100.0 / n_SP_updates );
+
+ VG_(message)(Vg_DebugMsg,
+ "translate: generic_known SP updates identified: %'llu (%3.1f%%)\n",
+ n_SP_updates_generic_known,
+ n_SP_updates_generic_known * 100.0 / n_SP_updates );
+
+ VG_(message)(Vg_DebugMsg,
+ "translate: generic_unknown SP updates identified: %'llu (%3.1f%%)\n",
+ n_SP_updates_generic_unknown,
+ n_SP_updates_generic_unknown * 100.0 / n_SP_updates );
}
- VG_(message)(Vg_DebugMsg,
- "translate: fast SP updates identified: %'u (%3.1f%%)\n",
- n_SP_updates_fast, n_SP_updates_fast * 100.0 / n_SP_updates );
VG_(message)(Vg_DebugMsg,
- "translate: generic_known SP updates identified: %'u (%3.1f%%)\n",
- n_SP_updates_generic_known,
- n_SP_updates_generic_known * 100.0 / n_SP_updates );
-
- VG_(message)(Vg_DebugMsg,
- "translate: generic_unknown SP updates identified: %'u (%3.1f%%)\n",
- n_SP_updates_generic_unknown,
- n_SP_updates_generic_unknown * 100.0 / n_SP_updates );
+ "translate: PX: SPonly %'llu, UnwRegs %'llu, AllRegs %'llu, AllRegsAllInsns %'llu\n", n_PX_VexRegUpdSpAtMemAccess, n_PX_VexRegUpdUnwindregsAtMemAccess, n_PX_VexRegUpdAllregsAtMemAccess, n_PX_VexRegUpdAllregsAtEachInsn);
}
/*------------------------------------------------------------*/
@@ -779,6 +787,7 @@
return convention. */
static UInt needs_self_check ( void* closureV,
+ /*MAYBE_MOD*/VexRegisterUpdates* pxControl,
const VexGuestExtents* vge )
{
VgCallbackClosure* closure = (VgCallbackClosure*)closureV;
@@ -787,6 +796,20 @@
vg_assert(vge->n_used >= 1 && vge->n_used <= 3);
bitset = 0;
+ /* Will we need to do a second pass in order to compute a
+ revised *pxControl value? */
+ Bool pxStatusMightChange
+ = /* "the user actually set it" */
+ VG_(clo_px_file_backed) != VexRegUpd_INVALID
+ /* "and they set it to something other than the default. */
+ && *pxControl != VG_(clo_px_file_backed);
+
+ /* First, compute |bitset|, which specifies which extent(s) need a
+ self check. Whilst we're at it, note any NSegments that we get,
+ so as to reduce the number of calls required to
+ VG_(am_find_nsegment) in a possible second pass. */
+ const NSegment const* segs[3] = { NULL, NULL, NULL };
+
for (i = 0; i < vge->n_used; i++) {
Bool check = False;
Addr addr = vge->base[i];
@@ -844,6 +867,62 @@
if (check)
bitset |= (1 << i);
+
+ if (pxStatusMightChange && segA) {
+ vg_assert(i < sizeof(segs)/sizeof(segs[0]));
+ segs[i] = segA;
+ }
+ }
+
+ /* Now, possibly do a second pass, to see if the PX status might
+ change. This can happen if the user specified value via
+ --px-file-backed= which is different from the default PX value
+ specified via --vex-iropt-register-updates (also known by the
+ shorter alias --px-default). */
+ if (pxStatusMightChange) {
+
+ Bool allFileBacked = True;
+ for (i = 0; i < vge->n_used; i++) {
+ Addr addr = vge->base[i];
+ SizeT len = vge->len[i];
+ NSegment const* segA = segs[i];
+ if (!segA) {
+ /* If we don't have a cached value for |segA|, compute it now. */
+ segA = VG_(am_find_nsegment)(addr);
+ }
+ vg_assert(segA); /* Can this ever fail? */
+ if (segA && segA->kind == SkFileC && segA->start <= addr
+ && (len == 0 || addr + len <= segA->end + 1)) {
+ /* in a file-mapped segment */
+ } else {
+ /* not in a file-mapped segment, or we can't figure out
+ where it is */
+ allFileBacked = False;
+ break;
+ }
+ }
+
+ /* So, finally, if all the extents are in file backed segments, perform
+ the user-specified PX change. */
+ if (allFileBacked) {
+ *pxControl = VG_(clo_px_file_backed);
+ }
+
+ }
+
+ /* Update running PX stats, as it is difficult without these to
+ check that the system is behaving as expected. */
+ switch (*pxControl) {
+ case VexRegUpdSpAtMemAccess:
+ n_PX_VexRegUpdSpAtMemAccess++; break;
+ case VexRegUpdUnwindregsAtMemAccess:
+ n_PX_VexRegUpdUnwindregsAtMemAccess++; break;
+ case VexRegUpdAllregsAtMemAccess:
+ n_PX_VexRegUpdAllregsAtMemAccess++; break;
+ case VexRegUpdAllregsAtEachInsn:
+ n_PX_VexRegUpdAllregsAtEachInsn++; break;
+ default:
+ vg_assert(0);
}
return bitset;
Modified: trunk/include/pub_tool_options.h
==============================================================================
--- trunk/include/pub_tool_options.h (original)
+++ trunk/include/pub_tool_options.h Thu Feb 5 12:59:46 2015
@@ -171,6 +171,24 @@
}) \
)
+// Arg that can be one of a set of strings, as specified in an NULL
+// terminated array. Returns the index of the string in |qq_ix|, or
+// aborts if not found.
+#define VG_STRINDEX_CLO(qq_arg, qq_option, qq_strings, qq_ix) \
+ (VG_STREQN(VG_(strlen)(qq_option)+1, qq_arg, qq_option"=") && \
+ ({ \
+ const HChar* val = &(qq_arg)[ VG_(strlen)(qq_option)+1 ]; \
+ for (qq_ix = 0; (qq_strings)[qq_ix]; qq_ix++) { \
+ if (VG_STREQ(val, (qq_strings)[qq_ix])) \
+ break; \
+ } \
+ if ((qq_strings)[qq_ix] == NULL) \
+ VG_(fmsg_bad_option)(qq_arg, \
+ "Invalid string '%s' in '%s'\n", val, qq_arg); \
+ True; \
+ }) \
+ )
+
/* Verbosity level: 0 = silent, 1 (default), > 1 = more verbose. */
extern Int VG_(clo_verbosity);
@@ -203,6 +221,7 @@
/* Vex iropt control. Tool-visible so tools can make Vex optimise
less aggressively if that is needed (callgrind needs this). */
extern VexControl VG_(clo_vex_control);
+extern VexRegisterUpdates VG_(clo_px_file_backed);
/* Number of parents of a backtrace. Default: 12 */
extern Int VG_(clo_backtrace_size);
Modified: trunk/massif/ms_main.c
==============================================================================
--- trunk/massif/ms_main.c (original)
+++ trunk/massif/ms_main.c Thu Feb 5 12:59:46 2015
@@ -2534,7 +2534,8 @@
VG_(details_avg_translation_sizeB) ( 330 );
- VG_(clo_vex_control).iropt_register_updates
+ VG_(clo_vex_control).iropt_register_updates_default
+ = VG_(clo_px_file_backed)
= VexRegUpdSpAtMemAccess; // overridable by the user.
// Basic functions.
Modified: trunk/none/tests/cmdline2.stdout.exp
==============================================================================
--- trunk/none/tests/cmdline2.stdout.exp (original)
+++ trunk/none/tests/cmdline2.stdout.exp Thu Feb 5 12:59:46 2015
@@ -159,26 +159,34 @@
Vex options for all Valgrind tools:
--vex-iropt-verbosity=<0..9> [0]
--vex-iropt-level=<0..2> [2]
- --vex-iropt-register-updates=sp-at-mem-access
- |unwindregs-at-mem-access
- |allregs-at-mem-access
- |allregs-at-each-insn [unwindregs-at-mem-access]
--vex-iropt-unroll-thresh=<0..400> [120]
--vex-guest-max-insns=<1..100> [50]
--vex-guest-chase-thresh=<0..99> [10]
--vex-guest-chase-cond=no|yes [no]
- --trace-flags and --profile-flags values (omit the middle space):
- 1000 0000 show conversion into IR
- 0100 0000 show after initial opt
- 0010 0000 show after instrumentation
- 0001 0000 show after second opt
- 0000 1000 show after tree building
- 0000 0100 show selecting insns
- 0000 0010 show after reg-alloc
- 0000 0001 show final assembly
- 0000 0000 show summary profile only
- (Nb: you need --trace-notbelow and/or --trace-notabove
- with --trace-flags for full details)
+ Precise exception control. Possible values for 'mode' are as follows
+ and specify the minimum set of registers guaranteed to be correct
+ immediately prior to memory access instructions:
+ sp-at-mem-access stack pointer only
+ unwindregs-at-mem-access registers needed for stack unwinding
+ allregs-at-mem-access all registers
+ allregs-at-each-insn all registers are always correct
+ Default value for all 3 following flags is [unwindregs-at-mem-access].
+ --vex-iropt-register-updates=mode setting to use by default
+ --px-default=mode synonym for --vex-iropt-register-updates
+ --px-file-backed=mode optional setting for file-backed (non-JIT) code
+ Tracing and profile control:
+ --trace-flags and --profile-flags values (omit the middle space):
+ 1000 0000 show conversion into IR
+ 0100 0000 show after initial opt
+ 0010 0000 show after instrumentation
+ 0001 0000 show after second opt
+ 0000 1000 show after tree building
+ 0000 0100 show selecting insns
+ 0000 0010 show after reg-alloc
+ 0000 0001 show final assembly
+ 0000 0000 show summary profile only
+ (Nb: you need --trace-notbelow and/or --trace-notabove
+ with --trace-flags for full details)
debugging options for Valgrind tools that report errors
--dump-error=<number> show translation for basic block associated
|
|
From: <sv...@va...> - 2015-02-05 12:53:29
|
Author: sewardj
Date: Thu Feb 5 12:53:20 2015
New Revision: 3084
Log:
Make a very minor change to the LibVEX_Translate interface (sub-arg of
needs_self_check) which allows VEX's user to selectively override, on
a per-translation basis, the default precise-exception control setting
that is specified in VexControl::iropt_register_updates. Fix up
plumbing inside iropt so as to used passed-in values rather than the
default one.
Modified:
trunk/priv/guest_amd64_defs.h
trunk/priv/guest_amd64_helpers.c
trunk/priv/guest_arm64_defs.h
trunk/priv/guest_arm64_helpers.c
trunk/priv/guest_arm_defs.h
trunk/priv/guest_arm_helpers.c
trunk/priv/guest_generic_bb_to_IR.c
trunk/priv/guest_generic_bb_to_IR.h
trunk/priv/guest_mips_defs.h
trunk/priv/guest_mips_helpers.c
trunk/priv/guest_ppc_defs.h
trunk/priv/guest_ppc_helpers.c
trunk/priv/guest_s390_defs.h
trunk/priv/guest_s390_helpers.c
trunk/priv/guest_x86_defs.h
trunk/priv/guest_x86_helpers.c
trunk/priv/ir_opt.c
trunk/priv/ir_opt.h
trunk/priv/main_main.c
trunk/pub/libvex.h
Modified: trunk/priv/guest_amd64_defs.h
==============================================================================
--- trunk/priv/guest_amd64_defs.h (original)
+++ trunk/priv/guest_amd64_defs.h Thu Feb 5 12:53:20 2015
@@ -74,7 +74,8 @@
precise memory exceptions. This is logically part of the guest
state description. */
extern
-Bool guest_amd64_state_requires_precise_mem_exns ( Int, Int );
+Bool guest_amd64_state_requires_precise_mem_exns ( Int, Int,
+ VexRegisterUpdates );
extern
VexGuestLayout amd64guest_layout;
Modified: trunk/priv/guest_amd64_helpers.c
==============================================================================
--- trunk/priv/guest_amd64_helpers.c (original)
+++ trunk/priv/guest_amd64_helpers.c Thu Feb 5 12:53:20 2015
@@ -3988,8 +3988,9 @@
Only %RSP is needed in mode VexRegUpdSpAtMemAccess.
*/
-Bool guest_amd64_state_requires_precise_mem_exns ( Int minoff,
- Int maxoff)
+Bool guest_amd64_state_requires_precise_mem_exns (
+ Int minoff, Int maxoff, VexRegisterUpdates pxControl
+ )
{
Int rbp_min = offsetof(VexGuestAMD64State, guest_RBP);
Int rbp_max = rbp_min + 8 - 1;
@@ -4000,7 +4001,7 @@
if (maxoff < rsp_min || minoff > rsp_max) {
/* no overlap with rsp */
- if (vex_control.iropt_register_updates == VexRegUpdSpAtMemAccess)
+ if (pxControl == VexRegUpdSpAtMemAccess)
return False; // We only need to check stack pointer.
} else {
return True;
Modified: trunk/priv/guest_arm64_defs.h
==============================================================================
--- trunk/priv/guest_arm64_defs.h (original)
+++ trunk/priv/guest_arm64_defs.h Thu Feb 5 12:53:20 2015
@@ -64,7 +64,8 @@
precise memory exceptions. This is logically part of the guest
state description. */
extern
-Bool guest_arm64_state_requires_precise_mem_exns ( Int, Int );
+Bool guest_arm64_state_requires_precise_mem_exns ( Int, Int,
+ VexRegisterUpdates );
extern
VexGuestLayout arm64Guest_layout;
Modified: trunk/priv/guest_arm64_helpers.c
==============================================================================
--- trunk/priv/guest_arm64_helpers.c (original)
+++ trunk/priv/guest_arm64_helpers.c Thu Feb 5 12:53:20 2015
@@ -1317,8 +1317,9 @@
We enforce precise exns for guest SP, PC, 29(FP), 30(LR).
That might be overkill (for 29 and 30); I don't know.
*/
-Bool guest_arm64_state_requires_precise_mem_exns ( Int minoff,
- Int maxoff)
+Bool guest_arm64_state_requires_precise_mem_exns (
+ Int minoff, Int maxoff, VexRegisterUpdates pxControl
+ )
{
Int xsp_min = offsetof(VexGuestARM64State, guest_XSP);
Int xsp_max = xsp_min + 8 - 1;
@@ -1327,7 +1328,7 @@
if (maxoff < xsp_min || minoff > xsp_max) {
/* no overlap with xsp */
- if (vex_control.iropt_register_updates == VexRegUpdSpAtMemAccess)
+ if (pxControl == VexRegUpdSpAtMemAccess)
return False; // We only need to check stack pointer.
} else {
return True;
Modified: trunk/priv/guest_arm_defs.h
==============================================================================
--- trunk/priv/guest_arm_defs.h (original)
+++ trunk/priv/guest_arm_defs.h Thu Feb 5 12:53:20 2015
@@ -66,7 +66,8 @@
precise memory exceptions. This is logically part of the guest
state description. */
extern
-Bool guest_arm_state_requires_precise_mem_exns ( Int, Int );
+Bool guest_arm_state_requires_precise_mem_exns ( Int, Int,
+ VexRegisterUpdates );
extern
VexGuestLayout armGuest_layout;
Modified: trunk/priv/guest_arm_helpers.c
==============================================================================
--- trunk/priv/guest_arm_helpers.c (original)
+++ trunk/priv/guest_arm_helpers.c Thu Feb 5 12:53:20 2015
@@ -1047,8 +1047,9 @@
Only R13(sp) is needed in mode VexRegUpdSpAtMemAccess.
*/
-Bool guest_arm_state_requires_precise_mem_exns ( Int minoff,
- Int maxoff)
+Bool guest_arm_state_requires_precise_mem_exns (
+ Int minoff, Int maxoff, VexRegisterUpdates pxControl
+ )
{
Int sp_min = offsetof(VexGuestARMState, guest_R13);
Int sp_max = sp_min + 4 - 1;
@@ -1057,7 +1058,7 @@
if (maxoff < sp_min || minoff > sp_max) {
/* no overlap with sp */
- if (vex_control.iropt_register_updates == VexRegUpdSpAtMemAccess)
+ if (pxControl == VexRegUpdSpAtMemAccess)
return False; // We only need to check stack pointer.
} else {
return True;
Modified: trunk/priv/guest_generic_bb_to_IR.c
==============================================================================
--- trunk/priv/guest_generic_bb_to_IR.c (original)
+++ trunk/priv/guest_generic_bb_to_IR.c Thu Feb 5 12:53:20 2015
@@ -181,6 +181,7 @@
/*OUT*/VexGuestExtents* vge,
/*OUT*/UInt* n_sc_extents,
/*OUT*/UInt* n_guest_instrs, /* stats only */
+ /*MOD*/VexRegisterUpdates* pxControl,
/*IN*/ void* callback_opaque,
/*IN*/ DisOneInstrFn dis_instr_fn,
/*IN*/ const UChar* guest_code,
@@ -192,7 +193,9 @@
/*IN*/ const VexArchInfo* archinfo_guest,
/*IN*/ const VexAbiInfo* abiinfo_both,
/*IN*/ IRType guest_word_type,
- /*IN*/ UInt (*needs_self_check)(void*,const VexGuestExtents*),
+ /*IN*/ UInt (*needs_self_check)
+ (void*, /*MB_MOD*/VexRegisterUpdates*,
+ const VexGuestExtents*),
/*IN*/ Bool (*preamble_function)(void*,IRSB*),
/*IN*/ Int offB_GUEST_CMSTART,
/*IN*/ Int offB_GUEST_CMLEN,
@@ -528,7 +531,7 @@
IRType host_word_type = Ity_INVALID;
UInt extents_needing_check
- = needs_self_check(callback_opaque, vge);
+ = needs_self_check(callback_opaque, pxControl, vge);
if (host_word_szB == 4) host_word_type = Ity_I32;
if (host_word_szB == 8) host_word_type = Ity_I64;
Modified: trunk/priv/guest_generic_bb_to_IR.h
==============================================================================
--- trunk/priv/guest_generic_bb_to_IR.h (original)
+++ trunk/priv/guest_generic_bb_to_IR.h Thu Feb 5 12:53:20 2015
@@ -165,12 +165,13 @@
Top-level BB to IR conversion fn.
--------------------------------------------------------------- */
-/* See detailed comment in bb_to_IR.c. */
+/* See detailed comment in guest_generic_bb_to_IR.c. */
extern
IRSB* bb_to_IR (
/*OUT*/VexGuestExtents* vge,
/*OUT*/UInt* n_sc_extents,
/*OUT*/UInt* n_guest_instrs, /* stats only */
+ /*MOD*/VexRegisterUpdates* pxControl,
/*IN*/ void* callback_opaque,
/*IN*/ DisOneInstrFn dis_instr_fn,
/*IN*/ const UChar* guest_code,
@@ -182,7 +183,9 @@
/*IN*/ const VexArchInfo* archinfo_guest,
/*IN*/ const VexAbiInfo* abiinfo_both,
/*IN*/ IRType guest_word_type,
- /*IN*/ UInt (*needs_self_check)(void*,const VexGuestExtents*),
+ /*IN*/ UInt (*needs_self_check)
+ (void*, /*MB_MOD*/VexRegisterUpdates*,
+ const VexGuestExtents*),
/*IN*/ Bool (*preamble_function)(void*,IRSB*),
/*IN*/ Int offB_GUEST_CMSTART,
/*IN*/ Int offB_GUEST_CMLEN,
Modified: trunk/priv/guest_mips_defs.h
==============================================================================
--- trunk/priv/guest_mips_defs.h (original)
+++ trunk/priv/guest_mips_defs.h Thu Feb 5 12:53:20 2015
@@ -68,9 +68,13 @@
/* Describes to the optimser which part of the guest state require
precise memory exceptions. This is logically part of the guest
state description. */
-extern Bool guest_mips32_state_requires_precise_mem_exns ( Int, Int );
-
-extern Bool guest_mips64_state_requires_precise_mem_exns ( Int, Int );
+extern
+Bool guest_mips32_state_requires_precise_mem_exns ( Int, Int,
+ VexRegisterUpdates );
+
+extern
+Bool guest_mips64_state_requires_precise_mem_exns ( Int, Int,
+ VexRegisterUpdates );
extern VexGuestLayout mips32Guest_layout;
extern VexGuestLayout mips64Guest_layout;
Modified: trunk/priv/guest_mips_helpers.c
==============================================================================
--- trunk/priv/guest_mips_helpers.c (original)
+++ trunk/priv/guest_mips_helpers.c Thu Feb 5 12:53:20 2015
@@ -287,7 +287,9 @@
Only SP is needed in mode VexRegUpdSpAtMemAccess.
*/
-Bool guest_mips32_state_requires_precise_mem_exns(Int minoff, Int maxoff)
+Bool guest_mips32_state_requires_precise_mem_exns (
+ Int minoff, Int maxoff, VexRegisterUpdates pxControl
+ )
{
Int sp_min = offsetof(VexGuestMIPS32State, guest_r29);
Int sp_max = sp_min + 4 - 1;
@@ -296,7 +298,7 @@
if (maxoff < sp_min || minoff > sp_max) {
/* no overlap with sp */
- if (vex_control.iropt_register_updates == VexRegUpdSpAtMemAccess)
+ if (pxControl == VexRegUpdSpAtMemAccess)
return False; /* We only need to check stack pointer. */
} else {
return True;
@@ -322,7 +324,9 @@
return False;
}
-Bool guest_mips64_state_requires_precise_mem_exns ( Int minoff, Int maxoff )
+Bool guest_mips64_state_requires_precise_mem_exns (
+ Int minoff, Int maxoff, VexRegisterUpdates pxControl
+ )
{
Int sp_min = offsetof(VexGuestMIPS64State, guest_r29);
Int sp_max = sp_min + 8 - 1;
@@ -331,7 +335,7 @@
if ( maxoff < sp_min || minoff > sp_max ) {
/* no overlap with sp */
- if (vex_control.iropt_register_updates == VexRegUpdSpAtMemAccess)
+ if (pxControl == VexRegUpdSpAtMemAccess)
return False; /* We only need to check stack pointer. */
} else {
return True;
Modified: trunk/priv/guest_ppc_defs.h
==============================================================================
--- trunk/priv/guest_ppc_defs.h (original)
+++ trunk/priv/guest_ppc_defs.h Thu Feb 5 12:53:20 2015
@@ -81,10 +81,12 @@
precise memory exceptions. This is logically part of the guest
state description. */
extern
-Bool guest_ppc32_state_requires_precise_mem_exns ( Int, Int );
+Bool guest_ppc32_state_requires_precise_mem_exns ( Int, Int,
+ VexRegisterUpdates );
extern
-Bool guest_ppc64_state_requires_precise_mem_exns ( Int, Int );
+Bool guest_ppc64_state_requires_precise_mem_exns ( Int, Int,
+ VexRegisterUpdates );
extern
VexGuestLayout ppc32Guest_layout;
Modified: trunk/priv/guest_ppc_helpers.c
==============================================================================
--- trunk/priv/guest_ppc_helpers.c (original)
+++ trunk/priv/guest_ppc_helpers.c Thu Feb 5 12:53:20 2015
@@ -711,8 +711,9 @@
Only R1 is needed in mode VexRegUpdSpAtMemAccess.
*/
-Bool guest_ppc32_state_requires_precise_mem_exns ( Int minoff,
- Int maxoff )
+Bool guest_ppc32_state_requires_precise_mem_exns (
+ Int minoff, Int maxoff, VexRegisterUpdates pxControl
+ )
{
Int lr_min = offsetof(VexGuestPPC32State, guest_LR);
Int lr_max = lr_min + 4 - 1;
@@ -723,7 +724,7 @@
if (maxoff < r1_min || minoff > r1_max) {
/* no overlap with R1 */
- if (vex_control.iropt_register_updates == VexRegUpdSpAtMemAccess)
+ if (pxControl == VexRegUpdSpAtMemAccess)
return False; // We only need to check stack pointer.
} else {
return True;
@@ -744,8 +745,9 @@
return False;
}
-Bool guest_ppc64_state_requires_precise_mem_exns ( Int minoff,
- Int maxoff )
+Bool guest_ppc64_state_requires_precise_mem_exns (
+ Int minoff, Int maxoff, VexRegisterUpdates pxControl
+ )
{
/* Given that R2 is a Big Deal in the ELF ppc64 ABI, it seems
prudent to be conservative with it, even though thus far there
@@ -762,7 +764,7 @@
if (maxoff < r1_min || minoff > r1_max) {
/* no overlap with R1 */
- if (vex_control.iropt_register_updates == VexRegUpdSpAtMemAccess)
+ if (pxControl == VexRegUpdSpAtMemAccess)
return False; // We only need to check stack pointer.
} else {
return True;
Modified: trunk/priv/guest_s390_defs.h
==============================================================================
--- trunk/priv/guest_s390_defs.h (original)
+++ trunk/priv/guest_s390_defs.h Thu Feb 5 12:53:20 2015
@@ -60,10 +60,11 @@
Int n_precedingStmts);
-/* Describes to the optimser which part of the guest state require
+/* Describes to the optimiser which part of the guest state require
precise memory exceptions. This is logically part of the guest
state description. */
-Bool guest_s390x_state_requires_precise_mem_exns ( Int, Int );
+Bool guest_s390x_state_requires_precise_mem_exns ( Int, Int,
+ VexRegisterUpdates );
extern VexGuestLayout s390xGuest_layout;
Modified: trunk/priv/guest_s390_helpers.c
==============================================================================
--- trunk/priv/guest_s390_helpers.c (original)
+++ trunk/priv/guest_s390_helpers.c Thu Feb 5 12:53:20 2015
@@ -152,7 +152,9 @@
.. maxoff requires precise memory exceptions. If in doubt return
True (but this generates significantly slower code). */
Bool
-guest_s390x_state_requires_precise_mem_exns(Int minoff, Int maxoff)
+guest_s390x_state_requires_precise_mem_exns (
+ Int minoff, Int maxoff, VexRegisterUpdates pxControl
+)
{
Int lr_min = S390X_GUEST_OFFSET(guest_LR);
Int lr_max = lr_min + 8 - 1;
@@ -165,7 +167,7 @@
if (maxoff < sp_min || minoff > sp_max) {
/* No overlap with SP */
- if (vex_control.iropt_register_updates == VexRegUpdSpAtMemAccess)
+ if (pxControl == VexRegUpdSpAtMemAccess)
return False; // We only need to check stack pointer.
} else {
return True;
Modified: trunk/priv/guest_x86_defs.h
==============================================================================
--- trunk/priv/guest_x86_defs.h (original)
+++ trunk/priv/guest_x86_defs.h Thu Feb 5 12:53:20 2015
@@ -74,7 +74,8 @@
precise memory exceptions. This is logically part of the guest
state description. */
extern
-Bool guest_x86_state_requires_precise_mem_exns ( Int, Int );
+Bool guest_x86_state_requires_precise_mem_exns ( Int, Int,
+ VexRegisterUpdates );
extern
VexGuestLayout x86guest_layout;
Modified: trunk/priv/guest_x86_helpers.c
==============================================================================
--- trunk/priv/guest_x86_helpers.c (original)
+++ trunk/priv/guest_x86_helpers.c Thu Feb 5 12:53:20 2015
@@ -2778,8 +2778,9 @@
Only %ESP is needed in mode VexRegUpdSpAtMemAccess.
*/
-Bool guest_x86_state_requires_precise_mem_exns ( Int minoff,
- Int maxoff)
+Bool guest_x86_state_requires_precise_mem_exns (
+ Int minoff, Int maxoff, VexRegisterUpdates pxControl
+ )
{
Int ebp_min = offsetof(VexGuestX86State, guest_EBP);
Int ebp_max = ebp_min + 4 - 1;
@@ -2790,7 +2791,7 @@
if (maxoff < esp_min || minoff > esp_max) {
/* no overlap with esp */
- if (vex_control.iropt_register_updates == VexRegUpdSpAtMemAccess)
+ if (pxControl == VexRegUpdSpAtMemAccess)
return False; // We only need to check stack pointer.
} else {
return True;
Modified: trunk/priv/ir_opt.c
==============================================================================
--- trunk/priv/ir_opt.c (original)
+++ trunk/priv/ir_opt.c Thu Feb 5 12:53:20 2015
@@ -716,7 +716,8 @@
static void handle_gets_Stmt (
HashHW* env,
IRStmt* st,
- Bool (*preciseMemExnsFn)(Int,Int)
+ Bool (*preciseMemExnsFn)(Int,Int,VexRegisterUpdates),
+ VexRegisterUpdates pxControl
)
{
Int j;
@@ -828,7 +829,7 @@
of the environment corresponding to guest state that may not
be reordered with respect to memory references. That means
at least the stack pointer. */
- switch (vex_control.iropt_register_updates) {
+ switch (pxControl) {
case VexRegUpdAllregsAtMemAccess:
/* Precise exceptions required at mem access.
Flush all guest state. */
@@ -849,13 +850,14 @@
preciseMemExnsFn. */
HWord k_lo = (env->key[j] >> 16) & 0xFFFF;
HWord k_hi = env->key[j] & 0xFFFF;
- if (preciseMemExnsFn( k_lo, k_hi ))
+ if (preciseMemExnsFn( k_lo, k_hi, pxControl ))
env->inuse[j] = False;
}
break;
case VexRegUpdAllregsAtEachInsn:
// VexRegUpdAllregsAtEachInsn cannot happen here.
// fall through
+ case VexRegUpd_INVALID:
default:
vassert(0);
}
@@ -882,7 +884,8 @@
static void redundant_put_removal_BB (
IRSB* bb,
- Bool (*preciseMemExnsFn)(Int,Int)
+ Bool (*preciseMemExnsFn)(Int,Int,VexRegisterUpdates),
+ VexRegisterUpdates pxControl
)
{
Int i, j;
@@ -890,7 +893,7 @@
IRStmt* st;
UInt key = 0; /* keep gcc -O happy */
- vassert(vex_control.iropt_register_updates < VexRegUpdAllregsAtEachInsn);
+ vassert(pxControl < VexRegUpdAllregsAtEachInsn);
HashHW* env = newHHW();
@@ -982,7 +985,7 @@
of the guest state is no longer a write, but a read. Also
deals with implicit reads of guest state needed to maintain
precise exceptions. */
- handle_gets_Stmt( env, st, preciseMemExnsFn );
+ handle_gets_Stmt( env, st, preciseMemExnsFn, pxControl );
}
}
@@ -4392,13 +4395,13 @@
bb is modified in-place. */
static
-void do_redundant_PutI_elimination ( IRSB* bb )
+void do_redundant_PutI_elimination ( IRSB* bb, VexRegisterUpdates pxControl )
{
Int i, j;
Bool delete;
IRStmt *st, *stj;
- vassert(vex_control.iropt_register_updates < VexRegUpdAllregsAtEachInsn);
+ vassert(pxControl < VexRegUpdAllregsAtEachInsn);
for (i = 0; i < bb->stmts_used; i++) {
st = bb->stmts[i];
@@ -5524,9 +5527,12 @@
}
inline
-static Interval dirty_helper_puts ( const IRDirty *d,
- Bool (*preciseMemExnsFn)(Int, Int),
- Bool *requiresPreciseMemExns )
+static Interval dirty_helper_puts (
+ const IRDirty *d,
+ Bool (*preciseMemExnsFn)(Int,Int,VexRegisterUpdates),
+ VexRegisterUpdates pxControl,
+ /*OUT*/Bool *requiresPreciseMemExns
+ )
{
Int i;
Interval interval;
@@ -5558,7 +5564,8 @@
Int repeatLen = d->fxState[i].repeatLen;
if (preciseMemExnsFn(offset,
- offset + nRepeats * repeatLen + size - 1)) {
+ offset + nRepeats * repeatLen + size - 1,
+ pxControl)) {
*requiresPreciseMemExns = True;
}
update_interval(&interval, offset,
@@ -5569,11 +5576,15 @@
return interval;
}
-/* Return an interval if st modifies the guest state. Via requiresPreciseMemExns
- return whether or not that modification requires precise exceptions. */
-static Interval stmt_modifies_guest_state ( IRSB *bb, const IRStmt *st,
- Bool (*preciseMemExnsFn)(Int,Int),
- Bool *requiresPreciseMemExns )
+/* Return an interval if st modifies the guest state. Via
+ requiresPreciseMemExns return whether or not that modification
+ requires precise exceptions. */
+static Interval stmt_modifies_guest_state (
+ IRSB *bb, const IRStmt *st,
+ Bool (*preciseMemExnsFn)(Int,Int,VexRegisterUpdates),
+ VexRegisterUpdates pxControl,
+ /*OUT*/Bool *requiresPreciseMemExns
+ )
{
Interval interval;
@@ -5582,7 +5593,8 @@
Int offset = st->Ist.Put.offset;
Int size = sizeofIRType(typeOfIRExpr(bb->tyenv, st->Ist.Put.data));
- *requiresPreciseMemExns = preciseMemExnsFn(offset, offset + size - 1);
+ *requiresPreciseMemExns
+ = preciseMemExnsFn(offset, offset + size - 1, pxControl);
interval.present = True;
interval.low = offset;
interval.high = offset + size - 1;
@@ -5598,8 +5610,9 @@
are no holes. This is to avoid a loop. The assumption is conservative
in the sense that we might report that precise memory exceptions are
needed when in fact they are not. */
- *requiresPreciseMemExns =
- preciseMemExnsFn(offset, offset + descr->nElems * size - 1);
+ *requiresPreciseMemExns
+ = preciseMemExnsFn(offset, offset + descr->nElems * size - 1,
+ pxControl);
interval.present = True;
interval.low = offset;
interval.high = offset + descr->nElems * size - 1;
@@ -5607,7 +5620,8 @@
}
case Ist_Dirty:
- return dirty_helper_puts(st->Ist.Dirty.details, preciseMemExnsFn,
+ return dirty_helper_puts(st->Ist.Dirty.details,
+ preciseMemExnsFn, pxControl,
requiresPreciseMemExns);
default:
@@ -5619,8 +5633,11 @@
}
}
-/* notstatic */ Addr ado_treebuild_BB ( IRSB* bb,
- Bool (*preciseMemExnsFn)(Int,Int) )
+/* notstatic */ Addr ado_treebuild_BB (
+ IRSB* bb,
+ Bool (*preciseMemExnsFn)(Int,Int,VexRegisterUpdates),
+ VexRegisterUpdates pxControl
+ )
{
Int i, j, k, m;
Bool stmtStores, invalidateMe;
@@ -5759,8 +5776,10 @@
consideration does, or might do (sidely safe @ True). */
Bool putRequiresPreciseMemExns;
- putInterval = stmt_modifies_guest_state( bb, st, preciseMemExnsFn,
- &putRequiresPreciseMemExns);
+ putInterval = stmt_modifies_guest_state(
+ bb, st, preciseMemExnsFn, pxControl,
+ &putRequiresPreciseMemExns
+ );
/* be True if this stmt writes memory or might do (==> we don't
want to reorder other loads or stores relative to it). Also,
@@ -5860,7 +5879,8 @@
IRSB* cheap_transformations (
IRSB* bb,
IRExpr* (*specHelper) (const HChar*, IRExpr**, IRStmt**, Int),
- Bool (*preciseMemExnsFn)(Int,Int)
+ Bool (*preciseMemExnsFn)(Int,Int,VexRegisterUpdates),
+ VexRegisterUpdates pxControl
)
{
redundant_get_removal_BB ( bb );
@@ -5869,8 +5889,8 @@
ppIRSB(bb);
}
- if (vex_control.iropt_register_updates < VexRegUpdAllregsAtEachInsn) {
- redundant_put_removal_BB ( bb, preciseMemExnsFn );
+ if (pxControl < VexRegUpdAllregsAtEachInsn) {
+ redundant_put_removal_BB ( bb, preciseMemExnsFn, pxControl );
}
if (iropt_verbose) {
vex_printf("\n========= REDUNDANT PUT\n\n" );
@@ -5904,13 +5924,13 @@
optimising as much as possible in the presence of GetI and PutI. */
static
-IRSB* expensive_transformations( IRSB* bb )
+IRSB* expensive_transformations( IRSB* bb, VexRegisterUpdates pxControl )
{
(void)do_cse_BB( bb );
collapse_AddSub_chains_BB( bb );
do_redundant_GetI_elimination( bb );
- if (vex_control.iropt_register_updates < VexRegUpdAllregsAtEachInsn) {
- do_redundant_PutI_elimination( bb );
+ if (pxControl < VexRegUpdAllregsAtEachInsn) {
+ do_redundant_PutI_elimination( bb, pxControl );
}
do_deadcode_BB( bb );
return bb;
@@ -6038,7 +6058,8 @@
IRSB* do_iropt_BB(
IRSB* bb0,
IRExpr* (*specHelper) (const HChar*, IRExpr**, IRStmt**, Int),
- Bool (*preciseMemExnsFn)(Int,Int),
+ Bool (*preciseMemExnsFn)(Int,Int,VexRegisterUpdates),
+ VexRegisterUpdates pxControl,
Addr guest_addr,
VexArch guest_arch
)
@@ -6070,15 +6091,15 @@
If needed, do expensive transformations and then another cheap
cleanup pass. */
- bb = cheap_transformations( bb, specHelper, preciseMemExnsFn );
+ bb = cheap_transformations( bb, specHelper, preciseMemExnsFn, pxControl );
if (guest_arch == VexArchARM) {
/* Translating Thumb2 code produces a lot of chaff. We have to
work extra hard to get rid of it. */
bb = cprop_BB(bb);
bb = spec_helpers_BB ( bb, specHelper );
- if (vex_control.iropt_register_updates < VexRegUpdAllregsAtEachInsn) {
- redundant_put_removal_BB ( bb, preciseMemExnsFn );
+ if (pxControl < VexRegUpdAllregsAtEachInsn) {
+ redundant_put_removal_BB ( bb, preciseMemExnsFn, pxControl );
}
do_cse_BB( bb );
do_deadcode_BB( bb );
@@ -6105,12 +6126,14 @@
n_expensive++;
if (DEBUG_IROPT)
vex_printf("***** EXPENSIVE %d %d\n", n_total, n_expensive);
- bb = expensive_transformations( bb );
- bb = cheap_transformations( bb, specHelper, preciseMemExnsFn );
+ bb = expensive_transformations( bb, pxControl );
+ bb = cheap_transformations( bb, specHelper,
+ preciseMemExnsFn, pxControl );
/* Potentially common up GetIs */
cses = do_cse_BB( bb );
if (cses)
- bb = cheap_transformations( bb, specHelper, preciseMemExnsFn );
+ bb = cheap_transformations( bb, specHelper,
+ preciseMemExnsFn, pxControl );
}
/* Now have a go at unrolling simple (single-BB) loops. If
@@ -6118,10 +6141,12 @@
bb2 = maybe_loop_unroll_BB( bb, guest_addr );
if (bb2) {
- bb = cheap_transformations( bb2, specHelper, preciseMemExnsFn );
+ bb = cheap_transformations( bb2, specHelper,
+ preciseMemExnsFn, pxControl );
if (hasGetIorPutI) {
- bb = expensive_transformations( bb );
- bb = cheap_transformations( bb, specHelper, preciseMemExnsFn );
+ bb = expensive_transformations( bb, pxControl );
+ bb = cheap_transformations( bb, specHelper,
+ preciseMemExnsFn, pxControl );
} else {
/* at least do CSE and dead code removal */
do_cse_BB( bb );
Modified: trunk/priv/ir_opt.h
==============================================================================
--- trunk/priv/ir_opt.h (original)
+++ trunk/priv/ir_opt.h Thu Feb 5 12:53:20 2015
@@ -41,12 +41,14 @@
#include "libvex.h"
/* Top level optimiser entry point. Returns a new BB. Operates
- under the control of the global "vex_control" struct. */
+ under the control of the global "vex_control" struct and of the
+ supplied |pxControl| argument. */
extern
-IRSB* do_iropt_BB(
+IRSB* do_iropt_BB (
IRSB* bb,
IRExpr* (*specHelper) (const HChar*, IRExpr**, IRStmt**, Int),
- Bool (*preciseMemExnsFn)(Int,Int),
+ Bool (*preciseMemExnsFn)(Int,Int,VexRegisterUpdates),
+ VexRegisterUpdates pxControl,
Addr guest_addr,
VexArch guest_arch
);
@@ -62,9 +64,13 @@
/* The tree-builder. Make (approximately) maximal safe trees. bb is
destructively modified. Returns (unrelatedly, but useful later on)
the guest address of the highest addressed byte from any insn in
- this block, or Addr64_MAX if unknown (can that ever happen?) */
+ this block, or Addr_MAX if unknown (can that ever happen?) */
extern
-Addr ado_treebuild_BB ( IRSB* bb, Bool (*preciseMemExnsFn)(Int,Int) );
+Addr ado_treebuild_BB (
+ IRSB* bb,
+ Bool (*preciseMemExnsFn)(Int,Int,VexRegisterUpdates),
+ VexRegisterUpdates pxControl
+ );
#endif /* ndef __VEX_IR_OPT_H */
Modified: trunk/priv/main_main.c
==============================================================================
--- trunk/priv/main_main.c (original)
+++ trunk/priv/main_main.c Thu Feb 5 12:53:20 2015
@@ -94,13 +94,13 @@
void LibVEX_default_VexControl ( /*OUT*/ VexControl* vcon )
{
vex_bzero(vcon, sizeof(*vcon));
- vcon->iropt_verbosity = 0;
- vcon->iropt_level = 2;
- vcon->iropt_register_updates = VexRegUpdUnwindregsAtMemAccess;
- vcon->iropt_unroll_thresh = 120;
- vcon->guest_max_insns = 60;
- vcon->guest_chase_thresh = 10;
- vcon->guest_chase_cond = False;
+ vcon->iropt_verbosity = 0;
+ vcon->iropt_level = 2;
+ vcon->iropt_register_updates_default = VexRegUpdUnwindregsAtMemAccess;
+ vcon->iropt_unroll_thresh = 120;
+ vcon->guest_max_insns = 60;
+ vcon->guest_chase_thresh = 10;
+ vcon->guest_chase_cond = False;
}
@@ -229,7 +229,7 @@
const void*, const void*, const void*,
const void* );
IRExpr* (*specHelper) ( const HChar*, IRExpr**, IRStmt**, Int );
- Bool (*preciseMemExnsFn) ( Int, Int );
+ Bool (*preciseMemExnsFn) ( Int, Int, VexRegisterUpdates );
DisOneInstrFn disInstrFn;
@@ -683,9 +683,14 @@
" Front end "
"------------------------\n\n");
+ VexRegisterUpdates pxControl = vex_control.iropt_register_updates_default;
+ vassert(pxControl >= VexRegUpdSpAtMemAccess
+ && pxControl <= VexRegUpdAllregsAtEachInsn);
+
irsb = bb_to_IR ( vta->guest_extents,
&res.n_sc_extents,
&res.n_guest_instrs,
+ &pxControl,
vta->callback_opaque,
disInstrFn,
vta->guest_bytes,
@@ -719,6 +724,10 @@
vassert(vta->guest_extents->len[i] < 10000); /* sanity */
}
+ /* bb_to_IR() could have caused pxControl to change. */
+ vassert(pxControl >= VexRegUpdSpAtMemAccess
+ && pxControl <= VexRegUpdAllregsAtEachInsn);
+
/* If debugging, show the raw guest bytes for this bb. */
if (0 || (vex_traceflags & VEX_TRACE_FE)) {
if (vta->guest_extents->n_used > 1) {
@@ -746,7 +755,7 @@
vexAllocSanityCheck();
/* Clean it up, hopefully a lot. */
- irsb = do_iropt_BB ( irsb, specHelper, preciseMemExnsFn,
+ irsb = do_iropt_BB ( irsb, specHelper, preciseMemExnsFn, pxControl,
vta->guest_bytes_addr,
vta->arch_guest );
sanityCheckIRSB( irsb, "after initial iropt",
@@ -811,7 +820,7 @@
/* Turn it into virtual-registerised code. Build trees -- this
also throws away any dead bindings. */
- max_ga = ado_treebuild_BB( irsb, preciseMemExnsFn );
+ max_ga = ado_treebuild_BB( irsb, preciseMemExnsFn, pxControl );
if (vta->finaltidy) {
irsb = vta->finaltidy(irsb);
Modified: trunk/pub/libvex.h
==============================================================================
--- trunk/pub/libvex.h (original)
+++ trunk/pub/libvex.h Thu Feb 5 12:53:20 2015
@@ -386,25 +386,37 @@
/* VexRegisterUpdates specifies when to ensure that the guest state is
- up to date.
+ up to date, in order of increasing accuracy but increasing expense.
- VexRegUpdSpAtMemAccess : all registers are updated at superblock
- exits, SP is up to date at memory exception points. The SP is described
- by the arch specific functions guest_<arch>_state_requires_precise_mem_exns.
-
- VexRegUpdUnwindregsAtMemAccess : registers needed to make a stack trace are
- up to date at memory exception points. Typically, these are PC/SP/FP. The
- minimal registers are described by the arch specific functions
- guest_<arch>_state_requires_precise_mem_exns.
-
- VexRegUpdAllregsAtMemAccess : all registers up to date at memory exception
- points.
-
- VexRegUpdAllregsAtEachInsn : all registers up to date at each instruction. */
-typedef enum { VexRegUpdSpAtMemAccess=0x700,
- VexRegUpdUnwindregsAtMemAccess,
- VexRegUpdAllregsAtMemAccess,
- VexRegUpdAllregsAtEachInsn } VexRegisterUpdates;
+ VexRegUpdSpAtMemAccess: all registers are updated at superblock
+ exits, and SP is also up to date at memory exception points. The
+ SP is described by the arch specific functions
+ guest_<arch>_state_requires_precise_mem_exns.
+
+ VexRegUpdUnwindregsAtMemAccess: registers needed to make a stack
+ trace are up to date at memory exception points. Typically,
+ these are PC/SP/FP. The minimal registers are described by the
+ arch specific functions guest_<arch>_state_requires_precise_mem_exns.
+ This is what Valgrind sets as the default.
+
+ VexRegUpdAllregsAtMemAccess: all registers up to date at memory
+ exception points. This is what normally might be considered as
+ providing "precise exceptions for memory", but does not
+ necessarily provide precise register values at any other kind of
+ exception.
+
+ VexRegUpdAllregsAtEachInsn: all registers up to date at each
+ instruction.
+*/
+typedef
+ enum {
+ VexRegUpd_INVALID=0x700,
+ VexRegUpdSpAtMemAccess,
+ VexRegUpdUnwindregsAtMemAccess,
+ VexRegUpdAllregsAtMemAccess,
+ VexRegUpdAllregsAtEachInsn
+ }
+ VexRegisterUpdates;
/* Control of Vex's optimiser. */
@@ -415,8 +427,14 @@
/* Control aggressiveness of iropt. 0 = no opt, 1 = simple
opts, 2 (default) = max optimisation. */
Int iropt_level;
- /* Controls when registers are updated in guest state. */
- VexRegisterUpdates iropt_register_updates;
+ /* Controls when registers are updated in guest state. Note
+ that this is the default value. The VEX client can override
+ this on a per-IRSB basis if it wants. bb_to_IR() will query
+ the client to ask if it wants a different setting for the
+ block under construction, and that new setting is transported
+ back to LibVEX_Translate, which feeds it to iropt via the
+ various do_iropt_BB calls. */
+ VexRegisterUpdates iropt_register_updates_default;
/* How aggressive should iropt be in unrolling loops? Higher
numbers make it more enthusiastic about loop unrolling.
Default=120. A setting of zero disables unrolling. */
@@ -642,8 +660,19 @@
if any, a self check is required for. Must not be NULL.
The returned value is a bitmask with a 1 in position i indicating
that the i'th extent needs a check. Since there can be at most
- 3 extents, the returned values must be between 0 and 7. */
+ 3 extents, the returned values must be between 0 and 7.
+
+ This call also gives the VEX client the opportunity to change
+ the precision of register update preservation as performed by
+ the IR optimiser. Before the call, VEX will set *pxControl
+ to hold the default register-update status value as specified
+ by VexControl::iropt_register_updates_default as passed to
+ LibVEX_Init at library initialisation time. The client (in
+ this callback) can if it wants, inspect the value and change
+ it to something different, and that value will be used for
+ subsequent IR optimisation of the block. */
UInt (*needs_self_check)( /*callback_opaque*/void*,
+ /*MAYBE_MOD*/VexRegisterUpdates* pxControl,
const VexGuestExtents* );
/* IN: optionally, a callback which allows the caller to add its
|
|
From: Mark W. <mj...@re...> - 2015-02-05 11:14:40
|
Hi all, All the slides of the talks given in the Valgrind devroom at Fosdem in Brussel this year are now online: https://fosdem.org/2015/schedule/track/valgrind/ Sadly we had some trouble producing videos of the talks. If by a miracle we did manage to record some they will appear here with the other Fosdem talks: http://video.fosdem.org/ Cheers, Mark |
|
From: <sv...@va...> - 2015-02-05 11:05:59
|
Author: cborntra
Date: Thu Feb 5 11:05:53 2015
New Revision: 14905
Log:
valgrind part to VEX:3083 Fix bugzilla 343802, also extend testcase
Modified:
trunk/NEWS
trunk/memcheck/tests/s390x/ltgjhe.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Feb 5 11:05:53 2015
@@ -78,6 +78,8 @@
343012 Unhandled syscall 319 (memfd_create)
343303 Fix known deliberate memory leak in setenv() on Mac OS X 10.10
343306 OS X 10.10: UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option (partial fix)
+343802 s390x: Fix false positives "conditional jump or move depends on
+ unitialised value(s)"
n-i-bz Provide implementations of certain compiler builtins to support
compilers who may not provide those
n-i-bz Old STABS code is still being compiled, but never used. Remove it.
Modified: trunk/memcheck/tests/s390x/ltgjhe.c
==============================================================================
--- trunk/memcheck/tests/s390x/ltgjhe.c (original)
+++ trunk/memcheck/tests/s390x/ltgjhe.c Thu Feb 5 11:05:53 2015
@@ -17,7 +17,7 @@
"jhe 1f\n\t"
"lghi %0,0\n\t"
"j 2f\n\t"
- "1:lghi %0,0\n\t"
+ "1:lghi %0,1\n\t"
"2:\n\t"
:"=d" (result)
:"Q" (field1)
@@ -32,6 +32,36 @@
"jhe 1f\n\t"
"lghi %0,0\n\t"
"j 2f\n\t"
+ "1:lghi %0,1\n\t"
+ "2:\n\t"
+ :"=d" (result)
+ :"Q" (field2)
+ :"0","cc");
+
+ if (result)
+ printf("Error\n");
+
+ asm volatile( "oi %1,128\n\t"
+ "la 1,%1\n\t"
+ LTG(0,0,1,000,00)
+ "jl 1f\n\t"
+ "lghi %0,1\n\t"
+ "j 2f\n\t"
+ "1:lghi %0,0\n\t"
+ "2:\n\t"
+ :"=d" (result)
+ :"Q" (field1)
+ :"0","cc");
+
+ if (result)
+ printf("Error\n");
+
+ asm volatile( "oi %1,128\n\t"
+ "la 1,%1\n\t"
+ LT(0,0,1,000,00)
+ "jl 1f\n\t"
+ "lghi %0,1\n\t"
+ "j 2f\n\t"
"1:lghi %0,0\n\t"
"2:\n\t"
:"=d" (result)
|
|
From: <sv...@va...> - 2015-02-05 11:05:18
|
Author: cborntra
Date: Thu Feb 5 11:05:10 2015
New Revision: 3083
Log:
Fix bug 343802. We need to handle one more special case in the spechelper
Modified:
trunk/priv/guest_s390_helpers.c
Modified: trunk/priv/guest_s390_helpers.c
==============================================================================
--- trunk/priv/guest_s390_helpers.c (original)
+++ trunk/priv/guest_s390_helpers.c Thu Feb 5 11:05:10 2015
@@ -1958,7 +1958,10 @@
return unop(Iop_1Uto32, binop(Iop_CmpNE64, cc_dep1, mkU64(0)));
}
if (cond == 4 || cond == 4 + 1) {
- return unop(Iop_1Uto32, binop(Iop_CmpLT64S, cc_dep1, mkU64(0)));
+ /* Special case cc_dep < 0. Only check the MSB to avoid bogus
+ memcheck complaints due to gcc magic. Fixes 343802
+ */
+ return unop(Iop_64to32, binop(Iop_Shr64, cc_dep1, mkU8(63)));
}
if (cond == 8 + 4 || cond == 8 + 4 + 1) {
return unop(Iop_1Uto32, binop(Iop_CmpLE64S, cc_dep1, mkU64(0)));
|
|
From: <sv...@va...> - 2015-02-05 10:05:50
|
Author: sewardj
Date: Thu Feb 5 10:05:43 2015
New Revision: 14904
Log:
Fix some inconsistent uses of the VG_XACT_CLO macro, by putting an
empty then-body after the condition rather than merely ";", which is
confusing and is inconsistent with the rest of the arg handling code.
No functional change.
Modified:
trunk/coregrind/m_main.c
Modified: trunk/coregrind/m_main.c
==============================================================================
--- trunk/coregrind/m_main.c (original)
+++ trunk/coregrind/m_main.c Thu Feb 5 10:05:43 2015
@@ -659,15 +659,14 @@
VG_(clo_merge_recursive_frames), 0,
VG_DEEPEST_BACKTRACE) {}
- else if VG_XACT_CLO(arg, "--smc-check=none", VG_(clo_smc_check),
- Vg_SmcNone);
- else if VG_XACT_CLO(arg, "--smc-check=stack", VG_(clo_smc_check),
- Vg_SmcStack);
- else if VG_XACT_CLO(arg, "--smc-check=all", VG_(clo_smc_check),
- Vg_SmcAll);
+ else if VG_XACT_CLO(arg, "--smc-check=none",
+ VG_(clo_smc_check), Vg_SmcNone) {}
+ else if VG_XACT_CLO(arg, "--smc-check=stack",
+ VG_(clo_smc_check), Vg_SmcStack) {}
+ else if VG_XACT_CLO(arg, "--smc-check=all",
+ VG_(clo_smc_check), Vg_SmcAll) {}
else if VG_XACT_CLO(arg, "--smc-check=all-non-file",
- VG_(clo_smc_check),
- Vg_SmcAllNonFile);
+ VG_(clo_smc_check), Vg_SmcAllNonFile) {}
else if VG_USETX_CLO (arg, "--kernel-variant",
"bproc,"
@@ -687,22 +686,24 @@
VG_(clo_vex_control).iropt_verbosity, 0, 10) {}
else if VG_BINT_CLO(arg, "--vex-iropt-level",
VG_(clo_vex_control).iropt_level, 0, 2) {}
+
else if VG_XACT_CLO(arg,
"--vex-iropt-register-updates=sp-at-mem-access",
VG_(clo_vex_control).iropt_register_updates,
- VexRegUpdSpAtMemAccess);
+ VexRegUpdSpAtMemAccess) {}
else if VG_XACT_CLO(arg,
"--vex-iropt-register-updates=unwindregs-at-mem-access",
VG_(clo_vex_control).iropt_register_updates,
- VexRegUpdUnwindregsAtMemAccess);
+ VexRegUpdUnwindregsAtMemAccess) {}
else if VG_XACT_CLO(arg,
"--vex-iropt-register-updates=allregs-at-mem-access",
VG_(clo_vex_control).iropt_register_updates,
- VexRegUpdAllregsAtMemAccess);
+ VexRegUpdAllregsAtMemAccess) {}
else if VG_XACT_CLO(arg,
"--vex-iropt-register-updates=allregs-at-each-insn",
VG_(clo_vex_control).iropt_register_updates,
- VexRegUpdAllregsAtEachInsn);
+ VexRegUpdAllregsAtEachInsn) {}
+
else if VG_BINT_CLO(arg, "--vex-iropt-unroll-thresh",
VG_(clo_vex_control).iropt_unroll_thresh, 0, 400) {}
else if VG_BINT_CLO(arg, "--vex-guest-max-insns",
@@ -745,7 +746,7 @@
VG_(clo_xml_user_comment)) {}
else if VG_BOOL_CLO(arg, "--default-suppressions",
- VG_(clo_default_supp)) { }
+ VG_(clo_default_supp)) {}
else if VG_STR_CLO(arg, "--suppressions", tmp_str) {
VG_(addToXA)(VG_(clo_suppressions), &tmp_str);
|
|
From: Julian S. <js...@ac...> - 2015-02-05 09:33:16
|
On 04/02/15 21:44, Florian Krohm wrote:
> This will require rewriting some code like the snippet above,
> introducing new functions, moving stuff around, etc..
To stick with the original example, which I think was "get me, in malloc'd
memory, a copy of the file name associated with the segment in which this
address 'a' falls", the possibilities are
>> seg = VG_(am_find_nsegment)(...)
>> do dynamic memory allocation
>> assume seg is still valid
in which case we have the danger that seg becomes invalid due to the dynamic
memory allocation,
or you could try to push it in-line, by creating a function exported by
m_aspacemgr to do all of the above. But then that can't work because
m_aspacemgr can't do dynamic memory allocation.
<a bit of background, apologies if you know this already>
This difficulty comes from ancient history of the project (around version 1)
in which it would sometimes, apparently randomly depending on exact details
of the memory layout, segfault at startup, because m_aspacemgr and
m_mallocfree were mutually dependent. Eventually (after much effort)
m_aspacemgr was implemented so as to be almost entirely standalone, so as to
guarantee that the cycle was broken, but the downside is that you can't use
dynamic memory allocation inside it.
m_aspacemgr is essentially responsible for maintaining a data structure
that describes, as accurately as possible, the kernel's view of memory
layout of the process. And to some extent controls it by inspecting
mmap calls. The difficulty comes if m_aspacemgr's internal actions cause
the mapping itself to change.
Hence the comments at aspacemgr-linux.c:37 and priv_aspacemgr.h:35 and :63.
</end background>
This is why I was thinking along the lines of splitting NSegment* into two
different but related types, one of which has the special property that it
remains valid across dynamic memory allocation, and the other that is the
same as the current NSegment*. I say that because this sequence
seg = VG_(am_find_nsegment)(addr)
if (seg is 'file belonging to the client' (SkAnonC))
str = VG_(strdup)( seg->filename )
is in fact harmless, because doing dynamic memory allocation can only
increase or merge anonymous segments belonging to V. But it can't possibly
cause the client's files to be unmapped -- that would be insane -- so 'seg'
here is effectively one of the special not-volatile-across-dynamic-mem-alloc
variants. Hence I am suggesting to distinguish these by giving them a
different type in the sources (or something like that.)
J
|
|
From: <ma...@bu...> - 2015-02-05 06:41:14
|
valgrind revision: 14903
VEX revision: 3082
C compiler: gcc (Debian 4.7.2-5) 4.7.2
GDB: GNU gdb (GDB) 7.4.1-debian
Assembler: GNU assembler (GNU Binutils for Debian) 2.22
C library: GNU C Library (Debian EGLIBC 2.13-38+deb7u7) stable release version 2.13
uname -mrs: Linux 3.2.0-4-amd64 x86_64
Vendor version: Debian GNU/Linux 7 (wheezy)
Nightly build on wildebeest ( Debian 7.8 wheezy x86_64 )
Started at 2015-02-05 00:00:01 UTC
Ended at 2015-02-05 06:40:22 UTC
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
== 686 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
none/tests/syscall-restart1 (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
== 686 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
helgrind/tests/pth_destroy_cond (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short 2015-02-05 00:47:49.932431570 +0000
--- new.short 2015-02-05 02:59:57.312730953 +0000
***************
*** 9,11 ****
== 686 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
! helgrind/tests/pth_destroy_cond (stderr)
--- 9,11 ----
== 686 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
! none/tests/syscall-restart1 (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.14s no: 2.2s (15.8x, -----) me: 4.3s (30.6x, -----) ca:17.1s (121.9x, -----) he: 2.8s (20.0x, -----) ca: 4.9s (34.9x, -----) dr: 2.6s (18.9x, -----) ma: 2.6s (18.9x, -----)
bigcode1 valgrind-old:0.14s no: 2.2s (15.9x, -0.5%) me: 4.5s (32.1x, -4.9%) ca:18.0s (128.4x, -5.3%) he: 2.7s (19.3x, 3.6%) ca: 4.9s (35.3x, -1.0%) dr: 2.6s (18.9x, 0.0%) ma: 2.6s (18.4x, 2.3%)
-- bigcode2 --
bigcode2 valgrind-new:0.14s no: 5.2s (37.2x, -----) me:11.0s (78.6x, -----) ca:36.7s (262.1x, -----) he: 6.5s (46.6x, -----) ca: 9.2s (66.1x, -----) dr: 6.3s (44.7x, -----) ma: 6.0s (43.0x, -----)
bigcode2 valgrind-old:0.14s no: 5.2s (37.4x, -0.6%) me:11.1s (79.3x, -0.8%) ca:35.5s (253.6x, 3.2%) he: 6.5s (46.6x, 0.0%) ca: 9.9s (70.9x, -7.2%) dr: 6.3s (45.1x, -1.0%) ma: 6.0s (43.1x, -0.3%)
-- bz2 --
bz2 valgrind-new:0.68s no: 2.2s ( 3.2x, -----) me: 7.4s (10.9x, -----) ca:15.9s (23.4x, -----) he:11.0s (16.2x, -----) ca:13.5s (19.9x, -----) dr:14.7s (21.6x, -----) ma: 2.1s ( 3.1x, -----)
bz2 valgrind-old:0.68s no: 2.1s ( 3.1x, 1.9%) me: 7.6s (11.2x, -3.0%) ca:16.4s (24.2x, -3.5%) he:11.9s (17.4x, -7.5%) ca:13.8s (20.3x, -2.3%) dr:15.2s (22.3x, -3.0%) ma: 2.2s ( 3.2x, -1.9%)
-- fbench --
fbench valgrind-new:0.28s no: 1.4s ( 4.8x, -----) me: 4.8s (17.1x, -----) ca: 7.2s (25.8x, -----) he: 3.8s (13.4x, -----) ca: 4.2s (15.1x, -----) dr: 3.5s (12.5x, -----) ma: 1.4s ( 5.0x, -----)
fbench valgrind-old:0.28s no: 1.3s ( 4.8x, 1.5%) me: 4.7s (16.7x, 2.5%) ca: 7.8s (27.7x, -7.3%) he: 3.8s (13.4x, 0.3%) ca: 4.0s (14.1x, 6.2%) dr: 3.4s (12.0x, 4.6%) ma: 1.4s ( 5.1x, -2.1%)
-- ffbench --
ffbench valgrind-new:0.26s no: 1.3s ( 5.0x, -----) me: 3.8s (14.7x, -----) ca: 2.5s ( 9.4x, -----) he: 9.1s (35.1x, -----) ca: 5.3s (20.6x, -----) dr: 4.7s (18.0x, -----) ma: 1.2s ( 4.7x, -----)
ffbench valgrind-old:0.26s no: 1.2s ( 4.7x, 4.7%) me: 3.9s (15.1x, -2.6%) ca: 2.4s ( 9.1x, 3.7%) he: 8.7s (33.6x, 4.2%) ca: 5.2s (20.0x, 2.6%) dr: 4.5s (17.4x, 3.4%) ma: 1.2s ( 4.6x, 2.5%)
-- heap --
heap valgrind-new:0.11s no: 0.9s ( 7.8x, -----) me: 7.0s (63.8x, -----) ca: 7.9s (72.2x, -----) he: 9.1s (82.7x, -----) ca: 4.2s (38.5x, -----) dr: 5.6s (50.9x, -----) ma: 6.2s (56.3x, -----)
heap valgrind-old:0.11s no: 0.9s ( 7.9x, -1.2%) me: 6.9s (62.5x, 2.0%) ca: 8.5s (76.9x, -6.5%) he: 9.2s (83.5x, -1.0%) ca: 4.0s (36.8x, 4.3%) dr: 5.7s (52.1x, -2.3%) ma: 6.3s (56.9x, -1.1%)
-- heap_pdb4 --
heap_pdb4 valgrind-new:0.16s no: 0.9s ( 5.8x, -----) me:11.9s (74.6x, -----) ca: 8.8s (55.1x, -----) he:10.7s (66.6x, -----) ca: 4.6s (28.5x, -----) dr: 6.7s (42.0x, -----) ma: 6.7s (42.1x, -----)
heap_pdb4 valgrind-old:0.16s no: 1.0s ( 6.0x, -4.3%) me:11.9s (74.6x, 0.0%) ca: 8.8s (55.3x, -0.3%) he:10.6s (66.2x, 0.6%) ca: 4.6s (28.5x, 0.0%) dr: 6.7s (42.1x, -0.3%) ma: 6.5s (40.6x, 3.6%)
-- many-loss-records --
many-loss-records valgrind-new:0.01s no: 0.4s (36.0x, -----) me: 1.9s (194.0x, -----) ca: 1.3s (132.0x, -----) he: 1.8s (176.0x, -----) ca: 0.9s (93.0x, -----) dr: 1.5s (154.0x, -----) ma: 1.4s (136.0x, -----)
many-loss-records valgrind-old:0.01s no: 0.4s (38.0x, -5.6%) me: 2.1s (212.0x, -9.3%) ca: 1.3s (132.0x, 0.0%) he: 1.7s (174.0x, 1.1%) ca: 0.9s (92.0x, 1.1%) dr: 1.5s (147.0x, 4.5%) ma: 1.4s (139.0x, -2.2%)
-- many-xpts --
many-xpts valgrind-new:0.04s no: 0.4s (11.0x, -----) me: 2.5s (63.0x, -----) ca: 3.4s (85.2x, -----) he: 3.2s (79.0x, -----) ca: 1.3s (32.8x, -----) dr: 2.0s (49.0x, -----) ma: 2.1s (53.0x, -----)
many-xpts valgrind-old:0.04s no: 0.4s (11.0x, 0.0%) me: 2.6s (64.2x, -2.0%) ca: 3.5s (86.5x, -1.5%) he: 3.2s (80.0x, -1.3%) ca: 1.4s (34.0x, -3.8%) dr: 2.0s (51.2x, -4.6%) ma: 2.1s (53.2x, -0.5%)
-- sarp --
sarp valgrind-new:0.02s no: 0.4s (19.5x, -----) me: 3.3s (163.0x, -----) ca: 2.2s (112.0x, -----) he:10.1s (502.5x, -----) ca: 1.2s (60.5x, -----) dr: 1.4s (69.5x, -----) ma: 0.4s (21.0x, -----)
sarp valgrind-old:0.02s no: 0.4s (19.5x, 0.0%) me: 3.2s (160.5x, 1.5%) ca: 2.2s (111.5x, 0.4%) he:10.1s (507.0x, -0.9%) ca: 1.2s (59.5x, 1.7%) dr: 1.3s (64.0x, 7.9%) ma: 0.4s (21.0x, 0.0%)
-- tinycc --
tinycc valgrind-new:0.22s no: 2.0s ( 9.2x, -----) me:11.8s (53.5x, -----) ca:14.2s (64.5x, -----) he:13.7s (62.0x, -----) ca:10.8s (49.0x, -----) dr:10.6s (48.1x, -----) ma: 3.5s (15.9x, -----)
tinycc valgrind-old:0.22s no: 1.9s ( 8.8x, 4.4%) me:11.5s (52.4x, 2.1%) ca:14.3s (64.9x, -0.6%) he:13.5s (61.5x, 1.0%) ca:11.1s (50.6x, -3.2%) dr:10.6s (48.0x, 0.3%) ma: 3.4s (15.6x, 1.7%)
-- Finished tests in perf ----------------------------------------------
== 11 programs, 154 timings =================
2742.66user 35.22system 3:40:17elapsed 21%CPU (0avgtext+0avgdata 499708maxresident)k
226352inputs+453848outputs (383major+11755978minor)pagefaults 0swaps
=================================================
./valgrind-new/none/tests/syscall-restart1.stderr.diff
=================================================
--- syscall-restart1.stderr.exp 2015-02-05 00:48:43.688410920 +0000
+++ syscall-restart1.stderr.out 2015-02-05 02:09:16.238660018 +0000
@@ -1,3 +1,3 @@
-
+FAIL: expected write to fail with EPIPE, not 0
=================================================
./valgrind-old/helgrind/tests/pth_destroy_cond.stderr.diff
=================================================
--- pth_destroy_cond.stderr.exp 2015-02-05 00:01:31.233336296 +0000
+++ pth_destroy_cond.stderr.out 2015-02-05 00:32:03.880782795 +0000
@@ -5,6 +5,34 @@
by 0x........: pthread_create@* (hg_intercepts.c:...)
by 0x........: main (pth_destroy_cond.c:29)
+---Thread-Announcement------------------------------------------
+
+Thread #x is the program's root thread
+
+----------------------------------------------------------------
+
+ Lock at 0x........ was first observed
+ at 0x........: pthread_mutex_init (hg_intercepts.c:...)
+ by 0x........: main (pth_destroy_cond.c:25)
+ Address 0x........ is 0 bytes inside data symbol "mutex"
+
+Possible data race during read of size 1 at 0x........ by thread #x
+Locks held: 1, at address 0x........
+ at 0x........: my_memcmp (hg_intercepts.c:...)
+ by 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...)
+ by 0x........: ThreadFunction (pth_destroy_cond.c:18)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+
+This conflicts with a previous write of size 4 by thread #x
+Locks held: none
+ ...
+ by 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ by 0x........: main (pth_destroy_cond.c:31)
+ Address 0x........ is 4 bytes inside data symbol "cond"
+
----------------------------------------------------------------
Thread #x: pthread_cond_destroy: destruction of condition variable being waited upon
|
|
From: Rich C. <rc...@wi...> - 2015-02-05 05:31:03
|
valgrind revision: 14903
VEX revision: 3082
C compiler: gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
GDB: GNU gdb (GDB; openSUSE 13.2) 7.8
Assembler: GNU assembler (GNU Binutils; openSUSE 13.2) 2.24.0.20140403-6.1
C library: GNU C Library (GNU libc) stable release version 2.19 (git 9a869d822025)
uname -mrs: Linux 3.16.6-2-desktop x86_64
Vendor version: Welcome to openSUSE 13.2 "Harlequin" - Kernel %r (%t).
Nightly build on rodan ( Linux 3.16.6-2-desktop x86_64 )
Started at 2015-02-04 19:22:01 CST
Ended at 2015-02-04 23:30:54 CST
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
== 615 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 1 stdoutB failure, 0 post failures ==
gdbserver_tests/hgtls (stdoutB)
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.7s (16.0x, -----) me:15.5s (32.4x, -----) ca:61.4s (127.9x, -----) he: 9.5s (19.9x, -----) ca:17.1s (35.7x, -----) dr: 9.2s (19.1x, -----) ma: 8.9s (18.6x, -----)
bigcode1 valgrind-old:0.48s no: 7.7s (16.1x, -0.5%) me:15.6s (32.4x, -0.1%) ca:61.5s (128.1x, -0.1%) he: 9.6s (19.9x, -0.2%) ca:17.1s (35.7x, -0.1%) dr: 9.1s (19.0x, 0.3%) ma: 8.9s (18.6x, -0.3%)
-- bigcode2 --
bigcode2 valgrind-new:0.49s no:18.8s (38.3x, -----) me:39.8s (81.1x, -----) ca:107.5s (219.3x, -----) he:24.2s (49.4x, -----) ca:32.9s (67.0x, -----) dr:22.1s (45.1x, -----) ma:21.4s (43.8x, -----)
bigcode2 valgrind-old:0.49s no:19.0s (38.7x, -1.2%) me:39.8s (81.2x, -0.1%) ca:107.3s (219.0x, 0.1%) he:24.2s (49.4x, 0.0%) ca:32.9s (67.2x, -0.2%) dr:22.1s (45.0x, 0.2%) ma:21.6s (44.1x, -0.8%)
-- bz2 --
bz2 valgrind-new:2.32s no: 7.7s ( 3.3x, -----) me:25.2s (10.9x, -----) ca:56.1s (24.2x, -----) he:37.5s (16.2x, -----) ca:51.9s (22.4x, -----) dr:53.2s (22.9x, -----) ma: 7.3s ( 3.2x, -----)
bz2 valgrind-old:2.32s no: 7.8s ( 3.4x, -0.9%) me:25.6s (11.1x, -1.6%) ca:56.3s (24.3x, -0.4%) he:37.6s (16.2x, -0.2%) ca:52.2s (22.5x, -0.6%) dr:53.1s (22.9x, 0.2%) ma: 7.2s ( 3.1x, 1.6%)
-- fbench --
fbench valgrind-new:1.44s no: 5.2s ( 3.6x, -----) me:17.5s (12.1x, -----) ca:26.3s (18.3x, -----) he:13.2s ( 9.2x, -----) ca:16.3s (11.3x, -----) dr:13.4s ( 9.3x, -----) ma: 5.4s ( 3.7x, -----)
fbench valgrind-old:1.44s no: 5.2s ( 3.6x, 0.0%) me:17.4s (12.1x, 0.2%) ca:26.3s (18.3x, 0.0%) he:13.2s ( 9.2x, -0.1%) ca:16.3s (11.3x, -0.2%) dr:13.3s ( 9.2x, 0.7%) ma: 5.4s ( 3.7x, -0.2%)
-- ffbench --
ffbench valgrind-new:1.00s no: 3.5s ( 3.5x, -----) me:12.3s (12.3x, -----) ca: 7.8s ( 7.8x, -----) he:21.3s (21.3x, -----) ca:20.4s (20.4x, -----) dr:16.8s (16.8x, -----) ma: 3.4s ( 3.4x, -----)
ffbench valgrind-old:1.00s no: 3.5s ( 3.5x, 0.3%) me:12.3s (12.3x, 0.1%) ca: 7.8s ( 7.8x, -0.1%) he:21.3s (21.3x, 0.2%) ca:20.5s (20.5x, -0.0%) dr:16.8s (16.8x, -0.5%) ma: 3.4s ( 3.4x, 0.0%)
-- heap --
heap valgrind-new:0.41s no: 3.0s ( 7.4x, -----) me:22.0s (53.6x, -----) ca:30.0s (73.1x, -----) he:30.4s (74.3x, -----) ca:15.0s (36.6x, -----) dr:20.4s (49.7x, -----) ma:21.5s (52.4x, -----)
heap valgrind-old:0.41s no: 3.0s ( 7.4x, 0.0%) me:22.0s (53.7x, -0.1%) ca:30.0s (73.1x, 0.0%) he:30.5s (74.3x, -0.1%) ca:15.0s (36.6x, 0.1%) dr:20.4s (49.7x, -0.1%) ma:21.4s (52.3x, 0.2%)
-- heap_pdb4 --
heap_pdb4 valgrind-new:0.55s no: 3.3s ( 6.0x, -----) me:38.0s (69.1x, -----) ca:33.1s (60.1x, -----) he:34.6s (63.0x, -----) ca:16.9s (30.8x, -----) dr:23.2s (42.2x, -----) ma:22.6s (41.1x, -----)
heap_pdb4 valgrind-old:0.55s no: 3.3s ( 6.0x, 0.3%) me:38.0s (69.1x, 0.1%) ca:33.3s (60.6x, -0.8%) he:34.6s (63.0x, -0.0%) ca:17.0s (30.8x, -0.1%) dr:23.2s (42.2x, -0.0%) ma:22.6s (41.1x, 0.0%)
-- many-loss-records --
many-loss-records valgrind-new:0.05s no: 1.0s (20.8x, -----) me: 6.0s (120.4x, -----) ca: 4.8s (95.6x, -----) he: 5.4s (107.2x, -----) ca: 2.9s (57.4x, -----) dr: 5.0s (99.6x, -----) ma: 4.7s (93.8x, -----)
many-loss-records valgrind-old:0.05s no: 1.0s (20.8x, 0.0%) me: 6.0s (120.6x, -0.2%) ca: 4.8s (95.6x, 0.0%) he: 5.4s (107.6x, -0.4%) ca: 2.9s (57.4x, 0.0%) dr: 4.9s (98.4x, 1.2%) ma: 4.7s (94.4x, -0.6%)
-- many-xpts --
many-xpts valgrind-new:0.15s no: 1.3s ( 8.6x, -----) me: 7.3s (48.5x, -----) ca:12.6s (84.3x, -----) he: 9.7s (64.9x, -----) ca: 4.1s (27.4x, -----) dr: 6.6s (43.7x, -----) ma: 7.3s (48.4x, -----)
many-xpts valgrind-old:0.15s no: 1.3s ( 8.6x, 0.0%) me: 7.3s (48.5x, 0.0%) ca:12.7s (84.4x, -0.2%) he: 9.8s (65.2x, -0.4%) ca: 4.1s (27.4x, 0.0%) dr: 6.6s (43.7x, 0.0%) ma: 7.2s (48.3x, 0.1%)
-- sarp --
sarp valgrind-new:0.11s no: 1.2s (11.4x, -----) me: 9.1s (82.5x, -----) ca: 7.7s (70.4x, -----) he:31.0s (282.0x, -----) ca: 4.3s (39.3x, -----) dr: 4.3s (39.1x, -----) ma: 1.3s (11.8x, -----)
sarp valgrind-old:0.11s no: 1.2s (11.3x, 0.8%) me: 9.1s (82.5x, 0.0%) ca: 7.8s (70.5x, -0.3%) he:30.9s (281.4x, 0.2%) ca: 4.3s (39.3x, 0.0%) dr: 4.3s (39.1x, 0.0%) ma: 1.3s (11.7x, 0.8%)
-- tinycc --
tinycc valgrind-new:0.75s no: 7.5s ( 9.9x, -----) me:37.8s (50.4x, -----) ca:46.7s (62.3x, -----) he:45.0s (60.0x, -----) ca:39.2s (52.3x, -----) dr:38.3s (51.0x, -----) ma:11.6s (15.5x, -----)
tinycc valgrind-old:0.75s no: 7.5s ( 9.9x, 0.1%) me:37.6s (50.1x, 0.7%) ca:46.8s (62.3x, -0.0%) he:44.9s (59.9x, 0.3%) ca:39.2s (52.3x, -0.0%) dr:39.9s (53.2x, -4.2%) ma:11.6s (15.5x, 0.3%)
-- Finished tests in perf ----------------------------------------------
== 11 programs, 154 timings =================
real 152m4.589s
user 150m17.586s
sys 1m39.284s
=================================================
./valgrind-new/gdbserver_tests/hgtls.stdoutB.diff
=================================================
--- hgtls.stdoutB.exp 2015-02-04 20:10:31.681737008 -0600
+++ hgtls.stdoutB.out 2015-02-04 20:24:24.051172668 -0600
@@ -35,11 +35,11 @@
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
-test so_extern tls_ip 0x........ ip 0x........ equal 1
+test so_extern tls_ip 0x........ ip 0x........ equal 0
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
-test so_extern tls_ip 0x........ ip 0x........ equal 1
+test so_extern tls_ip 0x........ ip 0x........ equal 0
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2015-02-04 20:10:33.341757925 -0600
+++ err_disable3.stderr.out 2015-02-04 20:28:42.323391032 -0600
@@ -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 2015-02-04 20:10:34.716775251 -0600
+++ err_disable4.stderr.out 2015-02-04 20:28:46.622444531 -0600
@@ -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 2015-02-04 20:10:34.197768712 -0600
+++ threadname.stderr.out 2015-02-04 20:35:34.626380285 -0600
@@ -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:61)
- ...
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:61)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:46)
- ...
- 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:46)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:30)
- ...
- 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:30)
- ...
-
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 2015-02-04 20:10:33.844764264 -0600
+++ threadname_xml.stderr.out 2015-02-04 20:35:36.954394774 -0600
@@ -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/gdbserver_tests/hgtls.stdoutB.diff
=================================================
--- hgtls.stdoutB.exp 2015-02-04 19:22:16.606048032 -0600
+++ hgtls.stdoutB.out 2015-02-04 19:36:03.786178343 -0600
@@ -35,11 +35,11 @@
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
-test so_extern tls_ip 0x........ ip 0x........ equal 1
+test so_extern tls_ip 0x........ ip 0x........ equal 0
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
-test so_extern tls_ip 0x........ ip 0x........ equal 1
+test so_extern tls_ip 0x........ ip 0x........ equal 0
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2015-02-04 19:22:17.413057979 -0600
+++ err_disable3.stderr.out 2015-02-04 19:40:23.086329623 -0600
@@ -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 2015-02-04 19:22:18.254068344 -0600
+++ err_disable4.stderr.out 2015-02-04 19:40:27.193379451 -0600
@@ -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 2015-02-04 19:22:18.014065386 -0600
+++ threadname.stderr.out 2015-02-04 19:47:15.922325602 -0600
@@ -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:61)
- ...
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:61)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:46)
- ...
- 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:46)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:30)
- ...
- 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:30)
- ...
-
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 2015-02-04 19:22:17.720061762 -0600
+++ threadname_xml.stderr.out 2015-02-04 19:47:18.259353814 -0600
@@ -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...> - 2015-02-05 05:10:42
|
valgrind revision: 14903 VEX revision: 3082 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.42-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 2015-02-05 03:45:01 CET Ended at 2015-02-05 06:10:27 CET 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 == 664 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/memcmptest (stderr) memcheck/tests/origin5-bz2 (stderr) helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/tc20_verifywrap (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 == 664 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) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Feb 5 04:03:22 2015 --- new.short Thu Feb 5 04:21:30 2015 *************** *** 8,10 **** ! == 664 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) --- 8,11 ---- ! == 664 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! memcheck/tests/memcmptest (stderr) memcheck/tests/origin5-bz2 (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.8s (21.0x, -----) me: 7.4s (32.1x, -----) ca:26.0s (112.9x, -----) he: 5.3s (23.3x, -----) ca: 9.2s (40.2x, -----) dr: 5.3s (23.2x, -----) ma: 4.8s (21.0x, -----) bigcode1 valgrind-old:0.23s no: 4.8s (21.0x, -0.4%) me: 7.1s (30.9x, 3.9%) ca:25.9s (112.8x, 0.0%) he: 5.4s (23.4x, -0.6%) ca: 9.2s (40.2x, -0.1%) dr: 5.3s (23.3x, -0.4%) ma: 4.8s (21.0x, 0.2%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 8.0s (33.2x, -----) me:14.7s (61.3x, -----) ca:39.2s (163.5x, -----) he:10.6s (44.1x, -----) ca:14.7s (61.0x, -----) dr: 9.8s (40.6x, -----) ma: 8.5s (35.5x, -----) bigcode2 valgrind-old:0.24s no: 8.1s (33.7x, -1.5%) me:14.5s (60.3x, 1.6%) ca:39.1s (163.0x, 0.3%) he:10.7s (44.4x, -0.8%) ca:14.6s (60.9x, 0.2%) dr: 9.8s (40.8x, -0.3%) ma: 8.5s (35.4x, 0.1%) -- bz2 -- bz2 valgrind-new:0.70s no: 6.5s ( 9.3x, -----) me:13.6s (19.4x, -----) ca:30.0s (42.9x, -----) he:19.7s (28.1x, -----) ca:34.2s (48.8x, -----) dr:29.6s (42.4x, -----) ma: 3.8s ( 5.5x, -----) bz2 valgrind-old:0.70s no: 6.7s ( 9.5x, -1.8%) me:13.6s (19.4x, -0.4%) ca:30.1s (42.9x, -0.1%) he:20.0s (28.6x, -1.5%) ca:34.2s (48.8x, 0.0%) dr:29.7s (42.4x, -0.1%) ma: 3.7s ( 5.3x, 3.4%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 4.0x, -----) me: 4.5s (11.0x, -----) ca: 9.4s (23.0x, -----) he: 6.5s (15.9x, -----) ca: 7.2s (17.7x, -----) dr: 5.8s (14.0x, -----) ma: 1.7s ( 4.1x, -----) fbench valgrind-old:0.41s no: 1.6s ( 4.0x, 0.0%) me: 4.5s (11.0x, 0.0%) ca: 9.3s (22.6x, 1.7%) he: 6.5s (15.8x, 0.6%) ca: 7.2s (17.6x, 0.1%) dr: 5.8s (14.0x, 0.0%) ma: 1.7s ( 4.1x, 0.0%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.2s ( 5.8x, -----) me: 3.3s (16.4x, -----) ca: 3.0s (15.0x, -----) he:43.8s (218.8x, -----) ca: 9.4s (46.9x, -----) dr: 7.5s (37.4x, -----) ma: 1.0s ( 4.9x, -----) ffbench valgrind-old:0.20s no: 1.2s ( 5.9x, -0.9%) me: 3.3s (16.4x, 0.0%) ca: 3.0s (15.0x, 0.3%) he:43.9s (219.6x, -0.4%) ca: 9.4s (46.8x, 0.1%) dr: 7.5s (37.3x, 0.4%) ma: 1.0s ( 4.9x, 1.0%) -- heap -- heap valgrind-new:0.23s no: 2.2s ( 9.7x, -----) me: 8.9s (38.7x, -----) ca:13.1s (56.7x, -----) he:12.9s (56.0x, -----) ca:11.3s (49.0x, -----) dr: 8.0s (34.7x, -----) ma: 7.9s (34.5x, -----) heap valgrind-old:0.23s no: 2.2s ( 9.7x, 0.0%) me: 8.9s (38.9x, -0.4%) ca:13.0s (56.7x, 0.1%) he:13.0s (56.5x, -0.8%) ca:11.2s (48.9x, 0.2%) dr: 8.1s (35.0x, -1.0%) ma: 8.1s (35.1x, -1.9%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.23s no: 2.5s (10.9x, -----) me:13.1s (57.1x, -----) ca:14.1s (61.2x, -----) he:14.2s (61.7x, -----) ca:12.2s (53.2x, -----) dr: 8.9s (38.6x, -----) ma: 8.0s (34.9x, -----) heap_pdb4 valgrind-old:0.23s no: 2.5s (10.8x, 1.2%) me:13.0s (56.6x, 0.9%) ca:14.0s (60.9x, 0.5%) he:14.1s (61.4x, 0.4%) ca:12.2s (53.2x, 0.0%) dr: 8.9s (38.6x, 0.1%) ma: 8.2s (35.6x, -2.0%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (17.7x, -----) me: 2.3s (77.3x, -----) ca: 1.9s (64.3x, -----) he: 2.4s (79.3x, -----) ca: 1.9s (64.0x, -----) dr: 2.0s (65.3x, -----) ma: 1.7s (56.0x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (17.7x, 0.0%) me: 2.3s (77.7x, -0.4%) ca: 1.9s (64.3x, 0.0%) he: 2.4s (79.7x, -0.4%) ca: 1.9s (63.7x, 0.5%) dr: 2.0s (65.3x, 0.0%) ma: 1.7s (56.3x, -0.6%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.7s ( 9.6x, -----) me: 3.4s (48.9x, -----) ca:342.9s (4898.3x, -----) he: 6.9s (98.3x, -----) ca: 2.8s (39.9x, -----) dr: 2.7s (38.9x, -----) ma: 2.6s (37.4x, -----) many-xpts valgrind-old:0.07s no: 0.7s ( 9.6x, 0.0%) me: 3.4s (48.9x, 0.0%) ca:335.1s (4786.6x, 2.3%) he: 6.9s (98.3x, 0.0%) ca: 2.8s (39.9x, 0.0%) dr: 2.7s (38.9x, -0.0%) ma: 2.6s (37.7x, -0.8%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (18.3x, -----) me: 3.8s (127.0x, -----) ca: 3.2s (106.0x, -----) he:17.6s (586.0x, -----) ca: 2.1s (68.7x, -----) dr: 1.6s (53.0x, -----) ma: 0.5s (16.7x, -----) sarp valgrind-old:0.03s no: 0.6s (18.3x, 0.0%) me: 3.8s (127.0x, 0.0%) ca: 3.2s (106.0x, 0.0%) he:17.7s (588.7x, -0.5%) ca: 2.1s (68.7x, 0.0%) dr: 1.6s (53.0x, -0.0%) ma: 0.5s (16.3x, 2.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 3.0s (13.7x, -----) me:14.9s (67.8x, -----) ca:29.6s (134.4x, -----) he:28.1s (127.8x, -----) ca:21.3s (96.7x, -----) dr:20.8s (94.7x, -----) ma: 3.9s (17.8x, -----) tinycc valgrind-old:0.22s no: 3.0s (13.8x, -0.7%) me:14.9s (67.8x, -0.1%) ca:29.8s (135.6x, -0.9%) he:28.6s (129.9x, -1.7%) ca:21.2s (96.5x, 0.2%) dr:20.8s (94.5x, 0.3%) ma: 4.0s (18.0x, -1.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 108m57.329s user 108m7.092s sys 0m40.874s |
|
From: <ma...@bu...> - 2015-02-05 04:34:35
|
valgrind revision: 14903
VEX revision: 3082
C compiler: gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
GDB: GNU gdb (GDB) Fedora 7.7.1-21.fc20
Assembler: GNU assembler version 2.23.2
C library: GNU C Library (GNU libc) stable release version 2.18
uname -mrs: Linux 3.17.7-200.fc20.s390x s390x
Vendor version: Fedora 20 (Heisenbug)
Nightly build on lfedora1 ( Fedora release 20 (Heisenbug), s390x )
Started at 2015-02-05 00:00:01 UTC
Ended at 2015-02-05 00:56:54 UTC
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
== 670 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/memcmptest (stderr)
helgrind/tests/locked_vs_unlocked2 (stderr)
helgrind/tests/pth_cond_destroy_busy (stderr)
helgrind/tests/tc22_exit_w_lock (stderr)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 670 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
helgrind/tests/locked_vs_unlocked2 (stderr)
helgrind/tests/pth_cond_destroy_busy (stderr)
helgrind/tests/tc22_exit_w_lock (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short 2015-02-05 00:28:39.718994625 +0000
--- new.short 2015-02-05 00:56:54.768994625 +0000
***************
*** 8,10 ****
! == 670 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
helgrind/tests/locked_vs_unlocked2 (stderr)
--- 8,11 ----
! == 670 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
! memcheck/tests/memcmptest (stderr)
helgrind/tests/locked_vs_unlocked2 (stderr)
=================================================
./valgrind-new/helgrind/tests/locked_vs_unlocked2.stderr.diff
=================================================
--- locked_vs_unlocked2.stderr.exp 2015-02-05 00:28:46.128994625 +0000
+++ locked_vs_unlocked2.stderr.out 2015-02-05 00:47:04.768994625 +0000
@@ -16,13 +16,13 @@
Lock at 0x........ was first observed
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (locked_vs_unlocked2.c:58)
- Address 0x........ is 0 bytes inside data symbol "mx2a"
+ by 0x........: main (locked_vs_unlocked2.c:59)
+ Address 0x........ is 0 bytes inside data symbol "mx2b"
Lock at 0x........ was first observed
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (locked_vs_unlocked2.c:59)
- Address 0x........ is 0 bytes inside data symbol "mx2b"
+ by 0x........: main (locked_vs_unlocked2.c:58)
+ Address 0x........ is 0 bytes inside data symbol "mx2a"
Lock at 0x........ was first observed
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
=================================================
./valgrind-new/helgrind/tests/pth_cond_destroy_busy.stderr.diff
=================================================
--- pth_cond_destroy_busy.stderr.exp 2015-02-05 00:28:46.078994625 +0000
+++ pth_cond_destroy_busy.stderr.out 2015-02-05 00:47:11.578994625 +0000
@@ -47,4 +47,4 @@
First pthread_cond_destroy() call returned EBUSY.
Second pthread_cond_destroy() call returned success.
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 6 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc22_exit_w_lock.stderr.diff
=================================================
--- tc22_exit_w_lock.stderr.exp 2015-02-05 00:28:46.068994625 +0000
+++ tc22_exit_w_lock.stderr.out 2015-02-05 00:48:29.128994625 +0000
@@ -13,6 +13,23 @@
---Thread-Announcement------------------------------------------
+Thread #x is the program's root thread
+
+----------------------------------------------------------------
+
+Possible data race during write of size 8 at 0x........ by thread #x
+Locks held: none
+ ...
+ by 0x........: pthread_create@* (hg_intercepts.c:...)
+ by 0x........: main (tc22_exit_w_lock.c:42)
+
+This conflicts with a previous read of size 8 by thread #x
+Locks held: none
+ ...
+ Address 0x........ is in a rw- anonymous segment
+
+---Thread-Announcement------------------------------------------
+
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
@@ -23,10 +40,6 @@
Thread #x: Exiting thread still holds 1 lock
...
----Thread-Announcement------------------------------------------
-
-Thread #x is the program's root thread
-
----------------------------------------------------------------
Thread #x: Exiting thread still holds 1 lock
@@ -34,4 +47,4 @@
by 0x........: main (tc22_exit_w_lock.c:48)
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc22_exit_w_lock.stderr.diff-kfail-x86
=================================================
--- tc22_exit_w_lock.stderr.exp-kfail-x86 2015-02-05 00:28:46.078994625 +0000
+++ tc22_exit_w_lock.stderr.out 2015-02-05 00:48:29.128994625 +0000
@@ -3,7 +3,6 @@
Thread #x was created
...
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
by 0x........: pthread_create@* (hg_intercepts.c:...)
by 0x........: main (tc22_exit_w_lock.c:39)
@@ -14,9 +13,25 @@
---Thread-Announcement------------------------------------------
+Thread #x is the program's root thread
+
+----------------------------------------------------------------
+
+Possible data race during write of size 8 at 0x........ by thread #x
+Locks held: none
+ ...
+ by 0x........: pthread_create@* (hg_intercepts.c:...)
+ by 0x........: main (tc22_exit_w_lock.c:42)
+
+This conflicts with a previous read of size 8 by thread #x
+Locks held: none
+ ...
+ Address 0x........ is in a rw- anonymous segment
+
+---Thread-Announcement------------------------------------------
+
Thread #x was created
...
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
by 0x........: pthread_create@* (hg_intercepts.c:...)
by 0x........: main (tc22_exit_w_lock.c:42)
@@ -25,14 +40,11 @@
Thread #x: Exiting thread still holds 1 lock
...
----Thread-Announcement------------------------------------------
-
-Thread #x is the program's root thread
-
----------------------------------------------------------------
Thread #x: Exiting thread still holds 1 lock
...
+ by 0x........: main (tc22_exit_w_lock.c:48)
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/memcheck/tests/memcmptest.stderr.diff
=================================================
--- memcmptest.stderr.exp 2015-02-05 00:28:44.008994625 +0000
+++ memcmptest.stderr.out 2015-02-05 00:38:30.428994625 +0000
@@ -1,4 +1,8 @@
Conditional jump or move depends on uninitialised value(s)
- at 0x........: memcmp (vg_replace_strmem.c:...)
+ at 0x........: bcmp (vg_replace_strmem.c:...)
+ by 0x........: main (memcmptest.c:13)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: bcmp (vg_replace_strmem.c:...)
by 0x........: main (memcmptest.c:13)
=================================================
./valgrind-new/memcheck/tests/memcmptest.stderr.diff2
=================================================
--- memcmptest.stderr.exp2 2015-02-05 00:28:43.988994625 +0000
+++ memcmptest.stderr.out 2015-02-05 00:38:30.428994625 +0000
@@ -2,3 +2,7 @@
at 0x........: bcmp (vg_replace_strmem.c:...)
by 0x........: main (memcmptest.c:13)
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: bcmp (vg_replace_strmem.c:...)
+ by 0x........: main (memcmptest.c:13)
+
=================================================
./valgrind-old/helgrind/tests/locked_vs_unlocked2.stderr.diff
=================================================
--- locked_vs_unlocked2.stderr.exp 2015-02-05 00:00:16.658994625 +0000
+++ locked_vs_unlocked2.stderr.out 2015-02-05 00:18:47.698994625 +0000
@@ -16,13 +16,13 @@
Lock at 0x........ was first observed
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (locked_vs_unlocked2.c:58)
- Address 0x........ is 0 bytes inside data symbol "mx2a"
+ by 0x........: main (locked_vs_unlocked2.c:59)
+ Address 0x........ is 0 bytes inside data symbol "mx2b"
Lock at 0x........ was first observed
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (locked_vs_unlocked2.c:59)
- Address 0x........ is 0 bytes inside data symbol "mx2b"
+ by 0x........: main (locked_vs_unlocked2.c:58)
+ Address 0x........ is 0 bytes inside data symbol "mx2a"
Lock at 0x........ was first observed
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
=================================================
./valgrind-old/helgrind/tests/pth_cond_destroy_busy.stderr.diff
=================================================
--- pth_cond_destroy_busy.stderr.exp 2015-02-05 00:00:16.618994625 +0000
+++ pth_cond_destroy_busy.stderr.out 2015-02-05 00:18:54.498994625 +0000
@@ -47,4 +47,4 @@
First pthread_cond_destroy() call returned EBUSY.
Second pthread_cond_destroy() call returned success.
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 6 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc22_exit_w_lock.stderr.diff
=================================================
--- tc22_exit_w_lock.stderr.exp 2015-02-05 00:00:16.598994625 +0000
+++ tc22_exit_w_lock.stderr.out 2015-02-05 00:20:12.688994625 +0000
@@ -13,6 +13,23 @@
---Thread-Announcement------------------------------------------
+Thread #x is the program's root thread
+
+----------------------------------------------------------------
+
+Possible data race during write of size 8 at 0x........ by thread #x
+Locks held: none
+ ...
+ by 0x........: pthread_create@* (hg_intercepts.c:...)
+ by 0x........: main (tc22_exit_w_lock.c:42)
+
+This conflicts with a previous read of size 8 by thread #x
+Locks held: none
+ ...
+ Address 0x........ is in a rw- anonymous segment
+
+---Thread-Announcement------------------------------------------
+
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
@@ -23,10 +40,6 @@
Thread #x: Exiting thread still holds 1 lock
...
----Thread-Announcement------------------------------------------
-
-Thread #x is the program's root thread
-
----------------------------------------------------------------
Thread #x: Exiting thread still holds 1 lock
@@ -34,4 +47,4 @@
by 0x........: main (tc22_exit_w_lock.c:48)
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc22_exit_w_lock.stderr.diff-kfail-x86
=================================================
--- tc22_exit_w_lock.stderr.exp-kfail-x86 2015-02-05 00:00:16.618994625 +0000
+++ tc22_exit_w_lock.stderr.out 2015-02-05 00:20:12.688994625 +0000
@@ -3,7 +3,6 @@
Thread #x was created
...
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
by 0x........: pthread_create@* (hg_intercepts.c:...)
by 0x........: main (tc22_exit_w_lock.c:39)
@@ -14,9 +13,25 @@
---Thread-Announcement------------------------------------------
+Thread #x is the program's root thread
+
+----------------------------------------------------------------
+
+Possible data race during write of size 8 at 0x........ by thread #x
+Locks held: none
+ ...
+ by 0x........: pthread_create@* (hg_intercepts.c:...)
+ by 0x........: main (tc22_exit_w_lock.c:42)
+
+This conflicts with a previous read of size 8 by thread #x
+Locks held: none
+ ...
+ Address 0x........ is in a rw- anonymous segment
+
+---Thread-Announcement------------------------------------------
+
Thread #x was created
...
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
by 0x........: pthread_create@* (hg_intercepts.c:...)
by 0x........: main (tc22_exit_w_lock.c:42)
@@ -25,14 +40,11 @@
Thread #x: Exiting thread still holds 1 lock
...
----Thread-Announcement------------------------------------------
-
-Thread #x is the program's root thread
-
----------------------------------------------------------------
Thread #x: Exiting thread still holds 1 lock
...
+ by 0x........: main (tc22_exit_w_lock.c:48)
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 4 contexts (suppressed: 0 from 0)
|
|
From: Tom H. <to...@co...> - 2015-02-05 04:15:32
|
valgrind revision: 14903 VEX revision: 3082 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.17.8-300.fc21.x86_64 x86_64 Vendor version: Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2015-02-05 03:02:27 GMT Ended at 2015-02-05 04:15:14 GMT 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 == 698 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.4s (30.6x, -----) ca:14.4s (130.6x, -----) he: 2.1s (18.7x, -----) ca: 3.8s (34.9x, -----) dr: 2.0s (18.0x, -----) ma: 2.0s (17.8x, -----) bigcode1 valgrind-old:0.11s no: 1.7s (15.1x, 0.0%) me: 3.4s (30.5x, 0.3%) ca:14.3s (130.4x, 0.2%) he: 2.1s (18.8x, -0.5%) ca: 3.9s (35.0x, -0.3%) dr: 2.0s (18.2x, -1.0%) ma: 1.9s (17.7x, 0.5%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.0s (36.6x, -----) me: 8.6s (77.9x, -----) ca:26.2s (238.4x, -----) he: 5.0s (45.5x, -----) ca: 7.3s (66.4x, -----) dr: 4.7s (42.8x, -----) ma: 4.5s (41.4x, -----) bigcode2 valgrind-old:0.11s no: 4.0s (36.4x, 0.7%) me: 8.5s (77.5x, 0.6%) ca:26.0s (236.5x, 0.8%) he: 5.0s (45.9x, -0.8%) ca: 7.3s (66.1x, 0.4%) dr: 4.7s (42.4x, 1.1%) ma: 4.5s (41.4x, 0.0%) -- bz2 -- bz2 valgrind-new:0.52s no: 1.6s ( 3.1x, -----) me: 5.8s (11.1x, -----) ca:13.2s (25.3x, -----) he: 8.2s (15.8x, -----) ca:11.0s (21.2x, -----) dr:10.7s (20.6x, -----) ma: 1.6s ( 3.1x, -----) bz2 valgrind-old:0.52s no: 1.6s ( 3.1x, -0.6%) me: 5.7s (11.0x, 0.5%) ca:13.2s (25.4x, -0.2%) he: 8.4s (16.1x, -2.2%) ca:11.0s (21.2x, 0.0%) dr:10.8s (20.7x, -0.6%) ma: 1.6s ( 3.1x, -0.6%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.6x, -----) me: 3.7s (17.0x, -----) ca: 5.6s (25.4x, -----) he: 2.8s (12.9x, -----) ca: 3.2s (14.5x, -----) dr: 2.6s (11.9x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.6x, 0.0%) me: 3.8s (17.0x, -0.3%) ca: 5.6s (25.3x, 0.2%) he: 2.8s (12.9x, 0.0%) ca: 3.2s (14.5x, -0.3%) dr: 2.6s (11.9x, -0.4%) ma: 1.1s ( 4.8x, 0.0%) -- ffbench -- ffbench valgrind-new:0.22s no: 0.9s ( 4.3x, -----) me: 2.9s (13.1x, -----) ca: 1.9s ( 8.5x, -----) he: 5.9s (27.0x, -----) ca: 4.2s (19.2x, -----) dr: 3.3s (15.0x, -----) ma: 0.9s ( 4.0x, -----) ffbench valgrind-old:0.22s no: 0.9s ( 4.3x, 1.1%) me: 2.9s (13.0x, 0.3%) ca: 1.9s ( 8.4x, 0.5%) he: 5.9s (26.9x, 0.5%) ca: 4.2s (19.0x, 0.9%) dr: 3.3s (15.2x, -1.5%) ma: 0.9s ( 4.0x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 7.5x, -----) me: 5.1s (63.7x, -----) ca: 6.3s (78.5x, -----) he: 6.7s (83.2x, -----) ca: 3.3s (41.5x, -----) dr: 4.3s (53.6x, -----) ma: 4.7s (58.1x, -----) heap valgrind-old:0.08s no: 0.6s ( 7.4x, 1.7%) me: 5.1s (63.9x, -0.2%) ca: 6.2s (77.8x, 1.0%) he: 6.6s (83.0x, 0.3%) ca: 3.2s (40.4x, 2.7%) dr: 4.3s (54.0x, -0.7%) ma: 4.6s (58.0x, 0.2%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.7s ( 6.0x, -----) me: 8.6s (77.9x, -----) ca: 7.0s (63.4x, -----) he: 7.5s (68.6x, -----) ca: 3.6s (32.6x, -----) dr: 5.1s (46.4x, -----) ma: 4.9s (44.9x, -----) heap_pdb4 valgrind-old:0.11s no: 0.7s ( 5.9x, 1.5%) me: 8.7s (78.6x, -0.9%) ca: 7.0s (63.3x, 0.1%) he: 7.5s (68.6x, 0.0%) ca: 3.6s (32.7x, -0.3%) dr: 5.1s (46.5x, -0.2%) ma: 4.9s (44.8x, 0.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (27.0x, -----) me: 1.4s (137.0x, -----) ca: 1.1s (106.0x, -----) he: 1.2s (117.0x, -----) ca: 0.7s (66.0x, -----) dr: 1.1s (107.0x, -----) ma: 1.0s (98.0x, -----) many-loss-records valgrind-old:0.01s no: 0.2s (24.0x, 11.1%) me: 1.4s (142.0x, -3.6%) ca: 1.0s (102.0x, 3.8%) he: 1.2s (117.0x, 0.0%) ca: 0.7s (70.0x, -6.1%) dr: 1.1s (110.0x, -2.8%) ma: 1.0s (100.0x, -2.0%) -- many-xpts -- many-xpts valgrind-new:0.04s no: 0.3s ( 8.0x, -----) me: 2.0s (49.8x, -----) ca: 2.7s (67.8x, -----) he: 2.3s (58.0x, -----) ca: 1.0s (25.0x, -----) dr: 1.5s (38.5x, -----) ma: 1.5s (36.8x, -----) many-xpts valgrind-old:0.04s no: 0.3s ( 7.8x, 3.1%) me: 2.0s (49.8x, 0.0%) ca: 2.7s (68.5x, -1.1%) he: 2.3s (57.8x, 0.4%) ca: 1.0s (24.8x, 1.0%) dr: 1.6s (38.8x, -0.6%) ma: 1.5s (36.5x, 0.7%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.0x, -----) me: 2.7s (133.0x, -----) ca: 1.9s (93.5x, -----) he: 6.9s (344.0x, -----) ca: 0.9s (47.0x, -----) dr: 1.0s (51.5x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (14.0x, 0.0%) me: 2.7s (134.0x, -0.8%) ca: 1.9s (94.5x, -1.1%) he: 6.7s (335.0x, 2.6%) ca: 0.9s (47.5x, -1.1%) dr: 1.0s (51.5x, 0.0%) ma: 0.3s (15.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.5s ( 9.1x, -----) me: 9.3s (58.2x, -----) ca:11.3s (70.9x, -----) he: 9.8s (61.5x, -----) ca: 8.4s (52.7x, -----) dr: 8.3s (51.6x, -----) ma: 2.5s (15.7x, -----) tinycc valgrind-old:0.16s no: 1.5s ( 9.2x, -1.4%) me: 9.3s (58.1x, 0.2%) ca:11.2s (70.3x, 0.9%) he: 9.9s (62.1x, -0.9%) ca: 8.4s (52.7x, 0.0%) dr: 8.2s (51.4x, 0.4%) ma: 2.5s (15.5x, 1.2%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 34m47.935s user 33m54.103s sys 0m22.336s |
|
From: Tom H. <to...@co...> - 2015-02-05 04:06:54
|
valgrind revision: 14903 VEX revision: 3082 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.17.8-300.fc21.x86_64 x86_64 Vendor version: Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2015-02-05 02:51:23 GMT Ended at 2015-02-05 04:06:43 GMT 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 == 698 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.3x, -----) me: 3.4s (30.7x, -----) ca:14.6s (132.5x, -----) he: 2.1s (19.2x, -----) ca: 3.9s (35.3x, -----) dr: 2.1s (18.7x, -----) ma: 1.9s (17.7x, -----) bigcode1 valgrind-old:0.11s no: 1.7s (15.1x, 1.2%) me: 3.4s (30.7x, 0.0%) ca:14.5s (131.6x, 0.7%) he: 2.1s (19.2x, 0.0%) ca: 5.4s (48.7x,-38.1%) dr: 2.0s (18.5x, 1.5%) ma: 2.1s (18.8x, -6.2%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.0s (36.7x, -----) me: 8.6s (78.4x, -----) ca:26.6s (241.7x, -----) he: 5.1s (46.4x, -----) ca: 7.4s (66.9x, -----) dr: 4.8s (43.4x, -----) ma: 4.6s (41.7x, -----) bigcode2 valgrind-old:0.11s no: 4.0s (36.2x, 1.5%) me: 8.6s (78.2x, 0.2%) ca:27.3s (248.2x, -2.7%) he: 5.1s (46.4x, 0.0%) ca: 7.4s (66.9x, 0.0%) dr: 4.7s (43.1x, 0.6%) ma: 4.6s (41.7x, 0.0%) -- bz2 -- bz2 valgrind-new:0.52s no: 1.6s ( 3.1x, -----) me: 5.8s (11.1x, -----) ca:13.4s (25.8x, -----) he: 8.6s (16.5x, -----) ca:10.9s (21.0x, -----) dr:10.6s (20.3x, -----) ma: 1.6s ( 3.1x, -----) bz2 valgrind-old:0.52s no: 1.6s ( 3.1x, 0.6%) me: 5.8s (11.1x, -0.2%) ca:13.3s (25.5x, 0.9%) he: 8.5s (16.4x, 0.2%) ca:10.9s (21.1x, -0.2%) dr:10.6s (20.3x, 0.0%) ma: 1.6s ( 3.1x, -0.6%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.6x, -----) me: 3.8s (17.0x, -----) ca: 5.6s (25.5x, -----) he: 2.9s (13.0x, -----) ca: 3.2s (14.4x, -----) dr: 2.7s (12.1x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.6x, 0.0%) me: 3.8s (17.1x, -0.5%) ca: 5.6s (25.5x, 0.2%) he: 2.9s (13.0x, 0.0%) ca: 3.2s (14.5x, -0.9%) dr: 2.7s (12.2x, -0.8%) ma: 1.1s ( 4.9x, -0.9%) -- ffbench -- ffbench valgrind-new:0.22s no: 0.9s ( 4.3x, -----) me: 3.0s (13.5x, -----) ca: 1.9s ( 8.6x, -----) he: 6.0s (27.0x, -----) ca: 4.2s (19.1x, -----) dr: 3.4s (15.4x, -----) ma: 0.9s ( 4.1x, -----) ffbench valgrind-old:0.22s no: 1.0s ( 4.4x, -2.1%) me: 2.9s (13.4x, 0.7%) ca: 1.9s ( 8.5x, 1.1%) he: 5.9s (26.7x, 1.3%) ca: 4.2s (19.1x, -0.2%) dr: 3.4s (15.5x, -1.2%) ma: 0.9s ( 4.1x, 0.0%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 8.0x, -----) me: 5.2s (65.0x, -----) ca: 6.6s (82.1x, -----) he: 7.1s (89.1x, -----) ca: 3.3s (41.1x, -----) dr: 4.7s (58.6x, -----) ma: 4.9s (61.2x, -----) heap valgrind-old:0.08s no: 0.6s ( 7.8x, 3.1%) me: 5.2s (64.4x, 1.0%) ca: 6.7s (83.5x, -1.7%) he: 7.0s (88.1x, 1.1%) ca: 3.3s (41.1x, 0.0%) dr: 4.6s (57.9x, 1.3%) ma: 4.9s (61.2x, 0.0%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 6.8x, -----) me: 8.7s (86.8x, -----) ca: 7.2s (72.1x, -----) he: 7.7s (77.3x, -----) ca: 3.6s (36.5x, -----) dr: 5.1s (51.1x, -----) ma: 5.0s (50.0x, -----) heap_pdb4 valgrind-old:0.10s no: 0.7s ( 6.7x, 1.5%) me: 8.7s (87.1x, -0.3%) ca: 7.3s (72.8x, -1.0%) he: 7.8s (77.5x, -0.3%) ca: 3.7s (36.7x, -0.5%) dr: 5.1s (51.3x, -0.4%) ma: 5.2s (52.1x, -4.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (27.0x, -----) me: 1.4s (143.0x, -----) ca: 1.1s (106.0x, -----) he: 1.2s (120.0x, -----) ca: 0.7s (69.0x, -----) dr: 1.1s (113.0x, -----) ma: 1.0s (99.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, 3.7%) me: 1.4s (144.0x, -0.7%) ca: 1.1s (108.0x, -1.9%) he: 1.2s (123.0x, -2.5%) ca: 0.7s (69.0x, -0.0%) dr: 1.1s (114.0x, -0.9%) ma: 1.0s (100.0x, -1.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (11.0x, -----) me: 2.0s (66.0x, -----) ca: 2.8s (92.0x, -----) he: 2.2s (75.0x, -----) ca: 1.0s (33.0x, -----) dr: 1.6s (51.7x, -----) ma: 1.4s (48.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (11.0x, 0.0%) me: 2.0s (66.0x, 0.0%) ca: 2.7s (90.7x, 1.4%) he: 2.3s (75.7x, -0.9%) ca: 1.0s (33.0x, 0.0%) dr: 1.6s (52.0x, -0.6%) ma: 1.4s (48.3x, -0.7%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.0x, -----) me: 2.5s (125.5x, -----) ca: 1.8s (88.0x, -----) he: 6.7s (335.0x, -----) ca: 0.9s (46.5x, -----) dr: 1.0s (51.5x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (14.0x, 0.0%) me: 2.5s (126.0x, -0.4%) ca: 1.8s (88.0x, 0.0%) he: 6.7s (335.5x, -0.1%) ca: 0.9s (47.0x, -1.1%) dr: 1.0s (52.0x, -1.0%) ma: 0.3s (15.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.4s ( 8.9x, -----) me: 9.0s (56.2x, -----) ca:11.2s (70.2x, -----) he:10.0s (62.6x, -----) ca: 8.3s (51.6x, -----) dr: 8.0s (49.8x, -----) ma: 2.5s (15.5x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.9x, 0.0%) me: 8.9s (55.8x, 0.7%) ca:11.1s (69.6x, 0.9%) he: 9.7s (60.8x, 2.8%) ca: 8.2s (51.6x, 0.1%) dr: 8.1s (50.7x, -1.9%) ma: 2.4s (15.2x, 1.6%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 35m19.102s user 34m22.251s sys 0m23.603s |
|
From: Rich C. <rc...@wi...> - 2015-02-05 04:05:32
|
valgrind revision: 14903
VEX revision: 3082
C compiler: gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
GDB: GNU gdb (GDB; openSUSE 13.2) 7.8
Assembler: GNU assembler (GNU Binutils; openSUSE 13.2) 2.24.0.20140403-6.1
C library: GNU C Library (GNU libc) stable release version 2.19 (git 9a869d822025)
uname -mrs: Linux 3.16.6-2-desktop x86_64
Vendor version: openSUSE 13.2 (Harlequin)
Nightly build on ultra ( gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064] Linux 3.16.6-2-desktop x86_64 )
Started at 2015-02-04 21:30:01 CST
Ended at 2015-02-04 22:05:21 CST
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
== 615 tests, 6 stderr failures, 0 stdout failures, 0 stderrB failures, 1 stdoutB failure, 0 post failures ==
gdbserver_tests/hgtls (stdoutB)
memcheck/tests/err_disable3 (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/threadname (stderr)
memcheck/tests/threadname_xml (stderr)
helgrind/tests/hg05_race2 (stderr)
helgrind/tests/tc09_bad_unlock (stderr)
=================================================
./valgrind-new/gdbserver_tests/hgtls.stdoutB.diff
=================================================
--- hgtls.stdoutB.exp 2015-02-04 21:47:56.014689764 -0600
+++ hgtls.stdoutB.out 2015-02-04 21:53:17.188746984 -0600
@@ -35,11 +35,11 @@
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
-test so_extern tls_ip 0x........ ip 0x........ equal 1
+test so_extern tls_ip 0x........ ip 0x........ equal 0
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
-test so_extern tls_ip 0x........ ip 0x........ equal 1
+test so_extern tls_ip 0x........ ip 0x........ equal 0
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
=================================================
./valgrind-new/helgrind/tests/hg05_race2.stderr.diff
=================================================
--- hg05_race2.stderr.exp 2015-02-04 21:48:38.370510230 -0600
+++ hg05_race2.stderr.out 2015-02-04 21:59:51.854758011 -0600
@@ -26,8 +26,7 @@
at 0x........: th (hg05_race2.c:17)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
- Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
- declared at hg05_race2.c:24, in frame #x of thread x
+ Address 0x........ is on thread #x's stack
----------------------------------------------------------------
@@ -42,8 +41,7 @@
at 0x........: th (hg05_race2.c:17)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
- Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
- declared at hg05_race2.c:24, in frame #x of thread x
+ Address 0x........ is on thread #x's stack
ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2015-02-04 21:48:38.393509763 -0600
+++ tc09_bad_unlock.stderr.out 2015-02-04 22:00:19.659983797 -0600
@@ -37,7 +37,6 @@
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:49)
Address 0x........ is on thread #x's stack
- in frame #x, created by nearly_main (tc09_bad_unlock.c:16)
----------------------------------------------------------------
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2015-02-04 21:47:56.751669244 -0600
+++ err_disable3.stderr.out 2015-02-04 21:55:08.455648882 -0600
@@ -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 2015-02-04 21:47:58.182629400 -0600
+++ err_disable4.stderr.out 2015-02-04 21:55:09.735613243 -0600
@@ -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 2015-02-04 21:47:57.478649003 -0600
+++ threadname.stderr.out 2015-02-04 21:57:08.902295192 -0600
@@ -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:61)
- ...
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:61)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:46)
- ...
- 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:46)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:30)
- ...
- 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:30)
- ...
-
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 2015-02-04 21:47:57.119658998 -0600
+++ threadname_xml.stderr.out 2015-02-04 21:57:09.544277317 -0600
@@ -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/gdbserver_tests/hgtls.stdoutB.diff
=================================================
--- hgtls.stdoutB.exp 2015-02-04 21:30:20.893049743 -0600
+++ hgtls.stdoutB.out 2015-02-04 21:35:43.772078676 -0600
@@ -35,11 +35,11 @@
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
-test so_extern tls_ip 0x........ ip 0x........ equal 1
+test so_extern tls_ip 0x........ ip 0x........ equal 0
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
-test so_extern tls_ip 0x........ ip 0x........ equal 1
+test so_extern tls_ip 0x........ ip 0x........ equal 0
[New Thread ....]
Breakpoint 1, tls_ptr (p=0x........) at tls.c:55
55 int here = 0;
=================================================
./valgrind-old/helgrind/tests/hg05_race2.stderr.diff
=================================================
--- hg05_race2.stderr.exp 2015-02-04 21:31:18.186465087 -0600
+++ hg05_race2.stderr.out 2015-02-04 21:42:22.339980706 -0600
@@ -26,8 +26,7 @@
at 0x........: th (hg05_race2.c:17)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
- Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
- declared at hg05_race2.c:24, in frame #x of thread x
+ Address 0x........ is on thread #x's stack
----------------------------------------------------------------
@@ -42,8 +41,7 @@
at 0x........: th (hg05_race2.c:17)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
- Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
- declared at hg05_race2.c:24, in frame #x of thread x
+ Address 0x........ is on thread #x's stack
ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2015-02-04 21:31:18.209464451 -0600
+++ tc09_bad_unlock.stderr.out 2015-02-04 21:42:49.657220070 -0600
@@ -37,7 +37,6 @@
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:49)
Address 0x........ is on thread #x's stack
- in frame #x, created by nearly_main (tc09_bad_unlock.c:16)
----------------------------------------------------------------
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2015-02-04 21:30:26.604891767 -0600
+++ err_disable3.stderr.out 2015-02-04 21:37:35.462968666 -0600
@@ -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 2015-02-04 21:30:31.723750192 -0600
+++ err_disable4.stderr.out 2015-02-04 21:37:36.722933587 -0600
@@ -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 2015-02-04 21:30:29.599808936 -0600
+++ threadname.stderr.out 2015-02-04 21:39:36.580596193 -0600
@@ -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:61)
- ...
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:61)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:46)
- ...
- 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:46)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:30)
- ...
- 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:30)
- ...
-
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 2015-02-04 21:30:28.506839164 -0600
+++ threadname_xml.stderr.out 2015-02-04 21:39:37.220578373 -0600
@@ -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: Tom H. <to...@co...> - 2015-02-05 03:56:42
|
valgrind revision: 14903 VEX revision: 3082 C compiler: gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7) 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.17.8-300.fc21.x86_64 x86_64 Vendor version: Nightly build on bristol ( x86_64, Fedora 19 (Schrödingerâs Cat) ) Started at 2015-02-05 02:41:08 GMT Ended at 2015-02-05 03:56:30 GMT 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 == 698 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.5s (31.5x, -----) ca:13.3s (120.9x, -----) he: 2.1s (19.2x, -----) ca: 3.8s (34.6x, -----) dr: 2.0s (18.6x, -----) ma: 2.0s (17.8x, -----) bigcode1 valgrind-old:0.11s no: 1.6s (14.9x, 1.2%) me: 3.5s (31.6x, -0.6%) ca:13.3s (120.8x, 0.1%) he: 2.1s (19.0x, 0.9%) ca: 3.8s (34.5x, 0.3%) dr: 2.0s (18.5x, 0.5%) ma: 1.9s (17.7x, 0.5%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.0s (36.0x, -----) me: 8.6s (78.1x, -----) ca:25.5s (231.5x, -----) he: 5.0s (45.8x, -----) ca: 7.2s (65.1x, -----) dr: 4.7s (42.6x, -----) ma: 4.5s (41.2x, -----) bigcode2 valgrind-old:0.11s no: 3.9s (35.6x, 1.0%) me: 8.6s (78.1x, 0.0%) ca:25.0s (227.1x, 1.9%) he: 5.0s (45.5x, 0.8%) ca: 7.2s (65.0x, 0.1%) dr: 4.7s (42.8x, -0.4%) ma: 4.5s (41.0x, 0.4%) -- bz2 -- bz2 valgrind-new:0.49s no: 1.6s ( 3.2x, -----) me: 5.8s (11.8x, -----) ca:12.5s (25.4x, -----) he: 8.7s (17.7x, -----) ca:10.4s (21.3x, -----) dr:10.7s (21.9x, -----) ma: 1.6s ( 3.2x, -----) bz2 valgrind-old:0.49s no: 1.6s ( 3.3x, -0.6%) me: 5.8s (11.8x, -0.2%) ca:12.4s (25.4x, 0.2%) he: 8.7s (17.8x, -0.8%) ca:10.5s (21.5x, -0.9%) dr:10.9s (22.3x, -1.9%) ma: 1.6s ( 3.2x, 0.0%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.7x, -----) me: 3.5s (15.8x, -----) ca: 5.5s (24.9x, -----) he: 3.0s (13.5x, -----) ca: 3.0s (13.6x, -----) dr: 2.7s (12.2x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.6x, 1.0%) me: 3.5s (16.0x, -1.4%) ca: 5.7s (25.8x, -3.8%) he: 3.0s (13.5x, 0.3%) ca: 3.0s (13.7x, -0.7%) dr: 2.7s (12.2x, -0.4%) ma: 1.1s ( 4.9x, -1.9%) -- ffbench -- ffbench valgrind-new:0.24s no: 1.0s ( 4.0x, -----) me: 3.1s (12.8x, -----) ca: 1.9s ( 7.9x, -----) he: 6.4s (26.5x, -----) ca: 4.5s (18.8x, -----) dr: 3.5s (14.5x, -----) ma: 0.9s ( 3.8x, -----) ffbench valgrind-old:0.24s no: 0.9s ( 4.0x, 2.1%) me: 3.0s (12.6x, 1.0%) ca: 1.9s ( 7.8x, 1.1%) he: 6.1s (25.3x, 4.7%) ca: 4.4s (18.2x, 2.9%) dr: 3.4s (14.1x, 2.3%) ma: 0.9s ( 3.8x, -1.1%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 7.6x, -----) me: 5.2s (65.5x, -----) ca: 6.0s (74.8x, -----) he: 6.8s (84.6x, -----) ca: 3.2s (39.8x, -----) dr: 5.1s (63.2x, -----) ma: 4.7s (59.2x, -----) heap valgrind-old:0.08s no: 0.6s ( 7.9x, -3.3%) me: 5.2s (65.2x, 0.4%) ca: 6.0s (74.8x, 0.0%) he: 6.8s (85.6x, -1.2%) ca: 3.2s (39.8x, 0.0%) dr: 5.0s (62.0x, 2.0%) ma: 4.7s (58.9x, 0.6%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 6.9x, -----) me: 9.4s (93.6x, -----) ca: 6.6s (66.0x, -----) he: 7.7s (77.1x, -----) ca: 3.5s (35.2x, -----) dr: 5.0s (50.3x, -----) ma: 4.9s (49.1x, -----) heap_pdb4 valgrind-old:0.10s no: 0.7s ( 6.9x, -0.0%) me: 9.3s (93.2x, 0.4%) ca: 6.8s (67.8x, -2.7%) he: 7.7s (76.7x, 0.5%) ca: 3.5s (35.2x, 0.0%) dr: 5.0s (50.1x, 0.4%) ma: 4.9s (49.0x, 0.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (27.0x, -----) me: 1.5s (147.0x, -----) ca: 1.0s (102.0x, -----) he: 1.3s (129.0x, -----) ca: 0.7s (67.0x, -----) dr: 1.1s (115.0x, -----) ma: 1.0s (103.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (27.0x, 0.0%) me: 1.5s (146.0x, 0.7%) ca: 1.0s (102.0x, 0.0%) he: 1.3s (129.0x, 0.0%) ca: 0.7s (68.0x, -1.5%) dr: 1.2s (116.0x, -0.9%) ma: 1.0s (103.0x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (11.0x, -----) me: 1.7s (57.0x, -----) ca: 2.5s (85.0x, -----) he: 2.2s (73.7x, -----) ca: 1.0s (32.0x, -----) dr: 1.6s (52.0x, -----) ma: 1.6s (52.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (11.0x, 0.0%) me: 1.7s (55.3x, 2.9%) ca: 2.5s (84.3x, 0.8%) he: 2.2s (73.7x, 0.0%) ca: 0.9s (31.7x, 1.0%) dr: 1.6s (52.7x, -1.3%) ma: 1.5s (51.3x, 1.3%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.5x, -----) me: 2.3s (116.5x, -----) ca: 1.7s (86.0x, -----) he: 6.7s (333.0x, -----) ca: 0.9s (45.5x, -----) dr: 1.1s (55.0x, -----) ma: 0.3s (15.5x, -----) sarp valgrind-old:0.02s no: 0.3s (14.5x, 0.0%) me: 2.2s (112.0x, 3.9%) ca: 1.7s (85.5x, 0.6%) he: 6.7s (334.5x, -0.5%) ca: 0.9s (45.5x, 0.0%) dr: 1.1s (54.5x, 0.9%) ma: 0.3s (15.5x, 0.0%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.4s ( 8.6x, -----) me: 8.0s (49.9x, -----) ca:10.8s (67.6x, -----) he: 9.9s (61.8x, -----) ca: 7.8s (48.6x, -----) dr: 8.2s (51.2x, -----) ma: 2.4s (14.9x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.7x, -0.7%) me: 8.1s (50.5x, -1.3%) ca:10.7s (66.6x, 1.5%) he: 9.9s (61.6x, 0.2%) ca: 7.8s (48.6x, 0.0%) dr: 8.2s (51.0x, 0.5%) ma: 2.4s (14.9x, 0.4%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 34m21.836s user 33m24.433s sys 0m24.373s |
|
From: Tom H. <to...@co...> - 2015-02-05 03:47:06
|
valgrind revision: 14903 VEX revision: 3082 C compiler: gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7) GDB: GNU gdb (GDB) Fedora 7.7.1-21.fc20 Assembler: GNU assembler version 2.23.2 C library: GNU C Library (GNU libc) stable release version 2.18 uname -mrs: Linux 3.17.8-300.fc21.x86_64 x86_64 Vendor version: Nightly build on bristol ( x86_64, Fedora 20 ) Started at 2015-02-05 02:31:08 GMT Ended at 2015-02-05 03:46:53 GMT 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 == 698 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 (15.0x, -----) me: 3.4s (31.0x, -----) ca:13.4s (121.9x, -----) he: 2.1s (19.0x, -----) ca: 3.8s (34.3x, -----) dr: 2.0s (18.6x, -----) ma: 2.0s (18.4x, -----) bigcode1 valgrind-old:0.11s no: 1.6s (15.0x, 0.0%) me: 3.4s (30.6x, 1.2%) ca:13.4s (121.6x, 0.2%) he: 2.1s (18.9x, 0.5%) ca: 3.8s (34.5x, -0.5%) dr: 2.0s (18.5x, 0.5%) ma: 1.9s (17.7x, 3.5%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.0s (35.9x, -----) me: 8.6s (78.2x, -----) ca:25.3s (230.0x, -----) he: 5.0s (45.8x, -----) ca: 7.1s (64.9x, -----) dr: 4.7s (42.8x, -----) ma: 4.5s (41.1x, -----) bigcode2 valgrind-old:0.11s no: 3.9s (35.6x, 0.8%) me: 8.6s (78.4x, -0.2%) ca:26.0s (236.3x, -2.7%) he: 5.0s (45.3x, 1.2%) ca: 7.2s (65.2x, -0.4%) dr: 4.7s (42.7x, 0.2%) ma: 4.5s (41.1x, 0.0%) -- bz2 -- bz2 valgrind-new:0.50s no: 1.6s ( 3.2x, -----) me: 5.7s (11.4x, -----) ca:12.5s (24.9x, -----) he: 8.6s (17.1x, -----) ca:10.4s (20.9x, -----) dr:10.6s (21.2x, -----) ma: 1.5s ( 3.1x, -----) bz2 valgrind-old:0.50s no: 1.6s ( 3.2x, 0.0%) me: 5.7s (11.3x, 0.5%) ca:12.5s (25.1x, -0.6%) he: 8.5s (17.1x, 0.4%) ca:10.4s (20.8x, 0.3%) dr:10.6s (21.1x, 0.5%) ma: 1.6s ( 3.1x, -1.3%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.7x, -----) me: 3.5s (16.0x, -----) ca: 5.5s (25.2x, -----) he: 2.6s (11.9x, -----) ca: 3.0s (13.7x, -----) dr: 2.5s (11.6x, -----) ma: 1.1s ( 4.9x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.6x, 1.9%) me: 3.5s (15.7x, 1.4%) ca: 5.6s (25.4x, -0.7%) he: 2.6s (11.9x, 0.0%) ca: 3.0s (13.7x, 0.0%) dr: 2.6s (11.6x, -0.4%) ma: 1.1s ( 4.8x, 0.9%) -- ffbench -- ffbench valgrind-new:0.24s no: 0.9s ( 4.0x, -----) me: 3.0s (12.4x, -----) ca: 1.9s ( 7.9x, -----) he: 6.6s (27.3x, -----) ca: 4.6s (19.0x, -----) dr: 3.5s (14.5x, -----) ma: 0.9s ( 3.8x, -----) ffbench valgrind-old:0.24s no: 1.0s ( 4.0x, -1.1%) me: 3.0s (12.4x, 0.0%) ca: 1.9s ( 7.8x, 0.5%) he: 6.2s (26.0x, 4.7%) ca: 4.4s (18.5x, 2.8%) dr: 3.4s (14.2x, 2.3%) ma: 0.9s ( 3.8x, -1.1%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 7.6x, -----) me: 5.2s (64.8x, -----) ca: 6.2s (77.0x, -----) he: 6.7s (84.1x, -----) ca: 3.3s (41.1x, -----) dr: 4.9s (60.9x, -----) ma: 4.7s (59.2x, -----) heap valgrind-old:0.08s no: 0.6s ( 7.5x, 1.6%) me: 5.2s (64.8x, 0.0%) ca: 6.3s (79.2x, -2.9%) he: 6.7s (83.8x, 0.4%) ca: 3.3s (41.4x, -0.6%) dr: 4.8s (60.4x, 0.8%) ma: 4.7s (59.1x, 0.2%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 6.7x, -----) me: 8.9s (89.5x, -----) ca: 6.6s (66.2x, -----) he: 7.7s (77.1x, -----) ca: 3.6s (35.7x, -----) dr: 4.9s (49.4x, -----) ma: 5.0s (49.9x, -----) heap_pdb4 valgrind-old:0.10s no: 0.7s ( 6.7x, 0.0%) me: 9.0s (90.2x, -0.8%) ca: 6.6s (66.1x, 0.2%) he: 7.7s (77.4x, -0.4%) ca: 3.6s (36.3x, -1.7%) dr: 4.9s (49.4x, 0.0%) ma: 5.1s (51.2x, -2.6%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (27.0x, -----) me: 1.5s (146.0x, -----) ca: 1.0s (101.0x, -----) he: 1.2s (125.0x, -----) ca: 0.7s (68.0x, -----) dr: 1.3s (129.0x, -----) ma: 1.0s (104.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, 3.7%) me: 1.4s (145.0x, 0.7%) ca: 1.0s (100.0x, 1.0%) he: 1.3s (128.0x, -2.4%) ca: 0.7s (69.0x, -1.5%) dr: 1.2s (118.0x, 8.5%) ma: 1.1s (109.0x, -4.8%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.7x, -----) me: 1.6s (55.0x, -----) ca: 2.5s (84.0x, -----) he: 2.2s (74.3x, -----) ca: 0.9s (31.7x, -----) dr: 1.6s (53.7x, -----) ma: 1.6s (51.7x, -----) many-xpts valgrind-old:0.03s no: 0.3s (11.0x, -3.1%) me: 1.7s (55.3x, -0.6%) ca: 2.6s (85.7x, -2.0%) he: 2.2s (74.7x, -0.4%) ca: 0.9s (31.7x, 0.0%) dr: 1.8s (61.0x,-13.7%) ma: 1.6s (53.0x, -2.6%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.5x, -----) me: 2.3s (116.5x, -----) ca: 1.7s (86.0x, -----) he: 6.7s (334.5x, -----) ca: 0.9s (46.0x, -----) dr: 1.1s (54.0x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (14.5x, 0.0%) me: 2.3s (116.0x, 0.4%) ca: 1.7s (86.0x, 0.0%) he: 6.8s (339.0x, -1.3%) ca: 0.9s (45.5x, 1.1%) dr: 1.1s (55.5x, -2.8%) ma: 0.3s (15.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.15s no: 1.4s ( 9.1x, -----) me: 7.9s (52.5x, -----) ca:10.8s (71.9x, -----) he: 9.8s (65.6x, -----) ca: 8.0s (53.0x, -----) dr: 8.1s (54.3x, -----) ma: 2.4s (15.8x, -----) tinycc valgrind-old:0.15s no: 1.4s ( 9.1x, 0.0%) me: 8.2s (54.3x, -3.6%) ca:11.3s (75.4x, -4.8%) he: 9.9s (65.9x, -0.4%) ca: 8.0s (53.5x, -1.0%) dr: 8.1s (53.8x, 0.9%) ma: 2.4s (16.1x, -2.1%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 34m39.276s user 33m37.259s sys 0m24.653s |